我有一个存储结构的表
id name group_id
1 ABC 1
2 DEF 1
3 GHi 1
4 jkl 2
5 mno 2
6 pqr 2
7 stu 3
8 vwx 3
9 yz0 3
我想通过最后一个group_id获取记录,在上面的示例中,3并不总是相同,所以首先我必须使用另一个查询获取最后一个组ID:
Selct * FROM records ORDER BY group_ID DESC LIMIT 1;
// so here it gets last group-id which is 3
所以我再次执行另一个查询来获取那些带有最后一个id
的记录// $id = 3 // from above records
Select * From records where group_id = $id
有没有更好的方法使用单个mysql查询?我正在使用codeigniter活动记录。 感谢
答案 0 :(得分:4)
试试这个:
SELECT *
FROM records
WHERE group_ID = (SELECT MAX(group_ID )
FROM records);
这会给你:
| ID | NAME | GROUP_ID |
------------------------
| 7 | stu | 3 |
| 8 | vwx | 3 |
| 9 | yz0 | 3 |
答案 1 :(得分:2)
SELECT x.*
FROM my_table x
JOIN
( SELECT MAX(group_id) max_group_id FROM my_table ) y
ON y.max_group_id = x.group_id;