Would you help me out as I am new to sql. I am using the following mySQL query:
SELECT * FROM tags WHERE TagNo LIKE '%' ORDER BY TagNo DESC, id DESC;
My id
is auto-incremented every time a new TagNo
is added.
I get this:
TagNo, id:
- 9, 4
- 9, 3
- 9, 2
- 9, 1
- 8, 400
- 8, 399
- 8, 398
- 8, 397
But I need the latest 3 id for any given TagNo.
TagNo, id:
- 9, 4
- 9, 3
- 9, 2
- 8, 400
- 8, 399
- 8, 398
I tried this from Bill Karwin post but GROUP By only shows 1 tag and having COUNT(*) seems to restrict only id with value < 3 .. id dynamically grows per TagNo
SELECT i1.* FROM database i1 LEFT OUTER JOIN ct_database i2 ON (i1.TagNo = i2.TagNo AND i1.id < i2.id) GROUP BY i1.id HAVING COUNT(*) < 3 ORDER BY TagNo
I've been trying for a week to figure out.It would be great if someone can help.