显示在同一天预订活动的不同用户

时间:2015-06-30 09:49:37

标签: mysql

我编写一个可以在这两个表上运行的查询失败了

活动表:

+-----------------------------+
|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

1 个答案:

答案 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