-3
我有2個表,EVENT
和EVENT_INVITATION
。我要選擇所有事件:MySQL加入查詢與計數
EVENT.creator_id = x
OR
EVENT_INVITATION.invitee_id = x
但我也需要返回的EVENT_INVITATION
行總數的每個結果EVENT
。
我有2個表,EVENT
和EVENT_INVITATION
。我要選擇所有事件:MySQL加入查詢與計數
EVENT.creator_id = x
OR
EVENT_INVITATION.invitee_id = x
但我也需要返回的EVENT_INVITATION
行總數的每個結果EVENT
。
獲取您關心的所有事件的列表,然後計算關聯的邀請。沒有邀請的情況下外聯。
WITH selectEvents AS (
SELECT event_id
FROM event
WHERE creator_id = <x>
UNION
SELECT event_id
FROM event_invitation
WHERE invitee_id = <x>
)
SELECT s.event_id, COUNT(i.event_id) AS theCount
FROM selectEvents s
LEFT OUTER JOIN event_invitation i ON (i.event_id = s.event_id)
GROUP BY s.event_id
我想這會做到這一點:
SELECT count(*), EVENT.event_id
FROM EVENT,
EVENT_INVITATION,
(
SELECT event_ID
FROM EVENT
WHERE creator_id = x
UNION
SELECT event_id
FROM EVENT_INVITATION.
WHERE invitee_id = x) temp
WHERE EVENT.event_ID = EVENT_INVITATION.event_ID
AND EVENT.event_ID = temp.event_ID
GROUP BY EVENT.event_id
我建議你做一個sql fiddle原因沒有你的數據結構和樣本集我沒有測試它的方式。