這有點複雜,因爲我們需要爲名稱找到最後一個不是0的條目。 (我會自然地傾向於按日期排序,但你說的ID是去什麼。)
SELECT t1.name, max(t1.id) as check_id FROM table t1 WHERE quantity > 0 GROUP BY name
現在,你可以得到的最低數量大於給定check_id更高的每個名字:
SELECT name, min(t2.id) FROM table t2
JOIN (SELECT t1.name, max(t1.id) as check_id FROM table t1 WHERE quantity > 0 GROUP BY name) as a ON a.name=t2.name
WHERE t2.quantity = 0 AND t2.id > a.id
GROUP BY t2.name
有一個問題。它將排除只有0數量的每個人。如果這可能發生,你需要用下面的代碼另一個查詢(只得到0值)
SELECT name, min(id) as check_id, sum(quantity) as qty_sum FROM table
GROUP BY name
HAVING qty_sum = 0
來源
2016-12-02 11:01:10
Seb
'SELECT *在哪裏ID = 9或ID = 3'? – ColinM
否..我需要基於用戶名的查詢...需要所有用戶或單獨用戶使用他們的最後第一個插入的零記錄詳細信息 –
對於x用戶,如何使用id作爲最後一個插入的0是由id 4. – Nitin