다른 테이블을 결합한 후 정확한 열 수를 얻는 데 문제가 있습니다. 열이 조인 될 때 조인중인 테이블의 DISTINCT 수가 여전히 필요합니다.다른 테이블을 결합한 후 테이블 열의 개별 카운트 얻기
식당에는 여러 개의 식사가 있고 식사에는 여러 개의 음식 그룹이 있으며 음식 그룹에는 여러 가지 재료가 들어 있습니다.
나는 레스토랑에서 얼마나 많은 식사, 음식 그룹 및 성분을 계산할 수 있는지 알고 싶습니다.
내가 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
고마워요!
* 메일이없는 레스토랑이있는 경우 'LEFT JOIN'을 사용해야합니다. 그렇지 않으면 알 수 없습니다! – mvds