通过加入 entry.id 上的下表,我想从 food_brands 表中提取具有最高 type_id 的行 - 所以我应该得到下面的前 3 行,type_id 为 11940
food_brands
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