GROUP BY と ORDER BY を連携させるためにいくつかのオプションを試しましたが、正しい結果が得られません。
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 を使用して、これらの結果から最新の dry_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 type feed_id ID 15296 dry_comm 13552 15296 15294 tinned_comm 13550 15294 になります
これを正しく機能させる方法はありますか?