entry.id で以下のテーブルを結合することから、最高の type_id を持つ food_brands テーブルから行を抽出したいので、type_id 11940 で下の上位 3 行を取得する必要があります。
食品ブランド
id brand type_id
15375 cesar 11940
15374 brunos 11940
15373 butchers 11940
15372 bakers 11939
15371 asda 11939
15370 aldi 11939
種類
id type quantity food_id
11940 comm 53453 10497
11939 comm 999 10496
食べ物
id frequency entry_id
10497 twice 12230
10496 twice 12230
10495 once 12230
エントリ
id number
12230 26
クエリでの私の試みは、下位の type.id レコードを除外していません。したがって、food_brands の下のテーブル レコードから、type_id が 11940 と 11939 のレコードを取得しています。
SELECT fb.*
FROM food_brands fb
INNER JOIN types t ON fb.type_id = t.id
INNER JOIN
(
SELECT MAX(id) AS MaxID
FROM types
GROUP BY id
) t2 ON t.food_id = t2.food_id AND t.id = t2.MaxID
INNER JOIN foods f ON t.food_id = f.id
INNER JOIN entries e ON f.entry_id = e.id
WHERE entries.id = 12230