2017-04-03 114 views
0

如何通過取得最後的數據記錄逐個項目地加入t_detail和t_header mysql?從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 | 1000 
5 | 005 | aqw | 2000 
+0

什麼你問?爲什麼2和3會忽略輸出?什麼是't_detail'和't_header'? – chris85

+0

這裏只有一個表 – Kushan

+0

我相信@iswadi要求查詢顯示每個項目的最後輸入記錄。 (即最後一個'asz',最後一個'qwe'和最後一個'aqw')? – Gnippots

回答

1

試試這個:擴大對@貴霜的回答

SELECT * FROM table t1 
WHERE id IN (SELECT MAX(id) FROM table t2 
WHERE t2.item = t1.item GROUP BY item) 
2

試試這個,

SELECT * FROM table WHERE id IN (SELECT MAX(id) FROM table GROUP BY item) 
0
Use GROUP BY and JOIN : 

SELECT id,doc,item,price 
FROM Table1 
JOIN 
(
    SELECT MAX(Id) _Id,item 
    FROM Table1 
    GROUP BY item  
) A ON A._Id = id 
0

更高的性能:

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 ; 

這種方式查詢只執行一次。

相關問題