我已經嘗試了幾個選項,我已經看到獲取GROUP BY和ORDER BY一起工作......但我無法得到正確的結果。排序方式desc和組通過跨表查詢
feeding_types table
id
type
quantity
feeding_id
feedings table
id
data_entry_id
查詢的基本組成部分返回如下:
id type feeding_id
15236 dried_comm 13499
15237 dried_comm 13500
15286 dried_comm 13543
15287 dried_comm 13544
15294 tinned_comm 13550
15295 dried_comm 13551
15296 dried_comm 13552
我想要做的就是使用GROUP BY擺脫這些結果的最新dried_comm和tinned_comm記錄,並過濾掉其餘的。
我已經試過這樣:
SELECT ft . * , MAX(ft.id) ID
FROM feeding_types ft
INNER JOIN feeding_types ft2 ON ft2.id = ft.ID
JOIN feedings f1 ON ft.feeding_id = f1.id
WHERE f1.data_entry_id = 15758
GROUP BY ft.type
ORDER BY ID DESC
導致:
id type feeding_id ID
15236 dried_comm 13499 15296
15294 tinned_comm 13550 15294
編輯:預期的結果將是 ID類型feeding_id ID 15296 dried_comm 13552 15296 15294 13550 tinned_comm 15294
任何想法如何讓這個工作正常?
什麼值決定「最新的dried_comm和tinned_comm記錄」?你能否將預期的結果添加到問題中? – 2013-05-09 13:56:40
只是每個人的最高ID,我已經在問題中添加了預期結果,歡呼 – bsod99 2013-05-09 13:59:46