我编写一个可以在这两个表上运行的查询失败了
活动表:
+-----------------------------+
|id | date | time |
+-----------------------------+
|1 | 2015.06.23 | 09:00:00 |
|2 | 2015.06.23 | 09:00:00 |
|3 | 2015.06.23 | 09:00:00 |
|4 | 2015.06.23 | 13:00:00 |
+-----------------------------+
用户表(我在哪里看到谁预订了哪个活动):
+--------------------------+
|object_id | user_id |
+--------------------------+
|1 | 12 |
|1 | 10 |
|2 | 12 |
|2 | 9 |
|3 | 7 |
+--------------------------+
Users.object_id是Events.id
如果用户在同一天同时预订了超过1个事件,那么我似乎无法正确编写的查询需要提醒我。
我的查询应该(我猜)使用GROUP BY ... HAVING COUNT(DISTINCT Users.user_id)> 1但我无法正确写出来。
在上面显示的数据中,结果应为:
User_id 12因为他们预订了events.id 1和2,并且这些事件发生在同一天,同一时间。 你能帮我帮我吗?谢谢。 SB
答案 0 :(得分:0)
SELECT u.`user_id`
FROM `users` u
JOIN `events` e ON e.`id` = u.`object_id`
GROUP BY u.`user_id`, e.`date`, e.`time`
HAVING count(*) > 1