【发布时间】:2015-10-08 14:17:24
【问题描述】:
我有一些相关的表格
用户
+----+--------------------------+------------+
| id | email | first_name |
+----+--------------------------+------------+
| 2 | Kovacek.Elisha@gmail.com | Loren |
| 3 | Cale.Beatty@gmail.com | Fernando |
| 4 | dKoss@Brown.com | Evelyn |
+----+--------------------------+------------+
活动
+----+------------+
| id | name |
+----+------------+
| 1 | Dolores ve |
| 2 | Harum erro |
| 3 | Ratione qu |
+----+------------+
EVENT_USER(加入)
+---------+----------+
| user_id | event_id |
+---------+----------+
| 1 | 3 |
| 1 | 13 |
| 1 | 48 |
+---------+----------+
以及与用户(消息、连接)等相关的其他表
我想为特定事件的用户获取消息、连接和其他相关数据的计数
我尝试过的 SQL:
SELECT u.`id`, u.`first_name`, u.`last_name`,
COUNT(m.`id`) as message_count,
COUNT(a.`id`) as article_count
FROM `users` u
LEFT JOIN `event_user` eu ON u.`id` = eu.`user_id`
LEFT JOIN `messages` m ON u.`id` = m.`from`
LEFT JOIN `articles` a ON u.`id` = a.`user_id`
WHERE
eu.`event_id` = 3
GROUP BY u.`id`
但结果显示两列的计数相同。
即所有用户的 message_count 和 article_count 都相同。
【问题讨论】:
-
您能用所有表格中的一些示例数据创建一个小提琴sqlfiddle.com 吗?
标签: mysql