从mysql中获取每个项目最后输入的记录
如何通过获取最后一条数据记录,按组逐项连接t_detail和t_header mysql从mysql中获取每个项目最后输入的记录,mysql,sql,Mysql,Sql,如何通过获取最后一条数据记录,按组逐项连接t_detail和t_header mysql id | doc | item | price 1 | 002 | asz | 1200 2 | 002 | aqw | 3000 3 | 002 | qwe | 1300 4 | 005 | qwe | 1000 5 | 005 | aqw | 2000 输出 id | doc | item | price 1 | 002 | asz | 1200 4 | 005 | qwe
id | doc | item | price
1 | 002 | asz | 1200
2 | 002 | aqw | 3000
3 | 002 | qwe | 1300
4 | 005 | qwe | 1000
5 | 005 | aqw | 2000
输出
id | doc | item | price
1 | 002 | asz | 1200
4 | 005 | qwe | 1000
5 | 005 | aqw | 2000
试试这个
SELECT * FROM table WHERE id IN (SELECT MAX(id) FROM table GROUP BY item)
试试这个
SELECT * FROM table WHERE id IN (SELECT MAX(id) FROM table GROUP BY item)
要获得更高的性能:
SELECT
d.*
FROM
t_detail d INNER JOIN
(
SELECT
MAX(id) as 'id'
FROM t_detail
GROUP BY item
) dmax on d.id = dmax.id ;
这样,查询只执行一次。要获得更高的性能:
SELECT
d.*
FROM
t_detail d INNER JOIN
(
SELECT
MAX(id) as 'id'
FROM t_detail
GROUP BY item
) dmax on d.id = dmax.id ;
这样,查询只执行一次。试试这个:扩展@Kushan的答案
SELECT * FROM table t1
WHERE id IN (SELECT MAX(id) FROM table t2
WHERE t2.item = t1.item GROUP BY item )
试试这个:扩展@Kushan的答案
SELECT * FROM table t1
WHERE id IN (SELECT MAX(id) FROM table t2
WHERE t2.item = t1.item GROUP BY item )
你在问什么?为什么输出中忽略了2和3?什么是
t_detail
和t_header
?这里只有一个表,我相信@iswadi要求查询以显示每个项目最后输入的记录。(即最后一个asz
、最后一个qwe
和最后一个aqw
)?@gnipbots是的..你在问什么?为什么输出中忽略了2和3?什么是t_detail
和t_header
?这里只有一个表,我相信@iswadi要求查询以显示每个项目最后输入的记录。(即最后一个asz
、最后一个qwe
和最后一个aqw
)?@Gnippots是。。