mysql - 显示当天预订事件的不同用户

标签 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

最佳答案

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/

相关文章:

MySQL在where子句后执行select

MySQL 复合键完整性

mysql - SQL 从单个表中选择唯一的 user_id

MySQL SSL 程序 "mysql_ssl_rsa_setup"

python - 如何在 MySQL 上使用 Django 模拟 "lock timeout"错误

mysql - 存储 wreSTLers、他们的角色和他们的入口音乐之间的关系的最合乎逻辑的方法是什么?

php - 为什么 127.0.0.1 在 Laravel .env 和 database.php 文件中不起作用,但 'localhost' 可以?

java - hibernate 5.2 Criteria API 中的子查询示例

sql - 在 mySQL 中显示数据时计算行数

mysql - 如何通过多个 JOIN 提高查询性能