【发布时间】:2010-07-27 03:11:02
【问题描述】:
在加入其他列后,我无法准确计算列数。当一个列被加入时,我仍然希望对它正在加入的表有一个 DISTINCT 计数。
餐厅有多餐,餐食有多个食物组,食物组有多种成分。
通过餐厅 ID,我希望能够计算餐厅有多少餐点、食物组和配料。
当我加入 food_groups 时,用餐数量也会增加(我知道这是自然行为,我只是不明白如何获得我需要的东西。)我尝试了 DISTINCT 和我发现的其他东西,但似乎没有任何作用。我想将其保留为一个查询,而不是将其拆分为多个查询。
SELECT
COUNT(meals.id) AS countMeals,
COUNT(food_groups.id) AS countGroups,
COUNT(ingrediants.id) AS countIngrediants
FROM
restaurants
INNER JOIN
meals ON restaurants.id = meals.restaurant_id
INNER JOIN
food_groups ON meals.id = food_groups.meal_id
INNER JOIN
ingrediants ON food_groups.id = ingrediants.food_group_id
WHERE
restaurants.id='43'
GROUP BY
restaurants.id
谢谢!
【问题讨论】:
-
如果你的餐厅有no邮件,你应该使用
LEFT JOIN否则你不会知道!