表1:食品新到SQL - 需要帮助的查询
id name
-------
1 Hot-dog
2 Sandwich
3 Apple
表2:报告
id food_id date
----------------
1 1 2010-01-01
2 1 2010-02-01
3 2 2011-02-01
我怎样才能设计出一个查询到食品表选择的所有食物一个名为numReports的变量,它是食品在报告中所有报告的总数量。
我一直想:
SELECT
food.id AS foodId,
food.name AS foodName,
count(
SELECT * FROM reports WHERE reports.food_id=food.id
) AS numReports
FROM
food
输出:
id name numReports
-------------------
1 Hot-dog 2
2 Sandwich 1
3 Apple 0
差不多吧,只是移动'Count'子选择内。 – Magnus
提到你的答案寻求帮助,谢谢。为什么人们会选择使用INNER JOIN而不是我们所做的方式? – Chris
我不知道,它更容易与子查询编写(因为我们有),因为你不必指定列的所有组(可以很多),如果你没有在主键上分组子查询将会有更好的表现。 – Magnus