我有兩個表。 (MySQL數據庫) 活動:Mysql不能正常工作
id | title | ...
Event_participate:
event_id | user_id | confirmed
confirmed
是0/1列。我想查找指定用戶參與的活動。我的SQL查詢是:
SELECT *, COALESCE(SUM(ep.confirmed), 0) AS count_members
FROM event e
LEFT JOIN event_participate ep ON e.id = ep.event_id
GROUP BY ep.event_id
HAVING (
ep.user_id = 6
)
我必須使用具有clasule,因爲我想擴大此查詢。 我有5個事件的結果,但是當我查詢此:
SELECT *
FROM `event_participate`
WHERE `user_id` = 6
我有7條記錄。這怎麼可能?
我編輯了第二張表格的結構(event_participate) - 它可以幫助您理解爲什麼我想使用having
clausule。當我使用WHERE
時,我總是會在count_members中獲得1。
編輯: 我的目標是獲得特定用戶參與的活動,我想知道有多少用戶已參與這些活動。
例如用戶id = 6參與id = 1的一個事件。但有3個其他用戶參與事件id = 1。所以我應該得到一個事件,並在列count_members我應該得到4
。
請檢查我的更新。 – latata
您應該提供輸入數據的示例以及您想要生成的內容。我認爲從你提出的問題的方式來看,這是不明確的。 –
已更新。現在檢查。 – latata