이 질문과 유사합니다 : MySQL Query - Sum one related table - Count another related table 알지만 작동하지 않습니다. 우리가 Attendees
의 수, Gifts
의 총량을 요약해야하는 각 Event
를 들어MySQL - 하나의 테이블에 레코드 수를 계산하고 다른 테이블에 레코드 합계
Event
Attendee
Gifts
:
나는 세 테이블이있다.Attendee
은 선물을 받거나 선물을받지 못할 수도 있습니다.
나는 내가 선물 합계를 무시한다면, 나는이 질문에 정답 수 있도록 작업을 얻을 수 있습니다 :
SELECT event.name AS name, count(*) AS num_attendee
FROM attendee
RIGHT JOIN event on event.id = attendee.event_id
WHERE event.company_id =6
GROUP BY event.id
을하지만 난 방법 (즉 Gift.Amount
값) 주어진 선물을 요약하면 아무 생각이 없다 각 이벤트에 대해 모두 Attendees
내가 간단하게 Gift
테이블에 합류하려고 할 때, event_id
에 기반한 테이블은 모든 수치가 엉뚱한 것입니다.
일부 샘플 입력과 출력이 있습니까? –
atendees와 선물 모두 event_id에 둘 이상의 레코드가 있기 때문에 아마 [cartesian product] (http://en.wikipedia.org/wiki/Cartesian_product)가 나타납니다. 이 경우 [파생 테이블] (http://www.sqlteam.com/article/using-derived-tables-to-calculate-aggregate-values)을 사용하여 하위 테이블에서 집계를 수행 한 후 상위 테이블에 조인하십시오. –