[英]MySQL - Count records in one table and sum records in another table
我知道這類似於以下問題: MySQL查詢-對一個相關表求和-對另一個相關表進行計數,但是我無法使其工作。
我有3張桌子:
Event
Attendee
Gifts
對於每個Event
我們需要總結Attendees
的數量以及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
但是我不知道如何對每個事件給所有Attendees
的禮物(即Gift.Amount
值)進行Gift.Amount
。 當我嘗試根據event_id
簡單地加入Gift
表時,所有數字都很古怪。
您是否正確進行了加入? 您應該在禮品表中同時包含活動和參與者:
from attendee right join
event
on event.id = attendee.event_id right join
gifts
on event.id = gifts.event_id and attendee.id = gifts.attendee_id
在MS-SQL 2000中是正常的:
SELECT event.name AS name, count( * ) num_attendee ,amount
FROM attendee
RIGHT JOIN event on event.id = attendee.event_id
LEFT OUTER JOIN(
SELECT event_id,amount=SUM(Amount)
FROM Gifts
GROUP BY event_id
) Gifts ON Gifts.event_id=event.id
WHERE event.company_id =6
GROUP BY event.name,amount
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.