我未能成功编写适用于这两个表的查询
事件表:
+-----------------------------+
|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
最佳答案
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
关于mysql - 显示当天预订事件的不同用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31134936/