mysql - 获取有关成员数量和预约日期的可用小组

标签 mysql

我正在尝试获取具有特定成员数量并且在特定日期可用(没有预约)的所有团体(乐队)。

我有 3 个表:

TBL_BANDMEMBER
ID | user_id | band_id | record_date
--------------------------------------------
1  | 10      | 1      | 2019-02-05 12:14:35
2  | 20      | 1      | 2019-02-05 12:14:35
3  | 30      | 2      | 2019-02-05 12:14:35
4  | 40      | 3      | 2019-02-05 12:14:35
5  | 50      | 4      | 2019-02-05 12:14:35

TBL_APPOINTMENTS
ID | band_id | appointment_date
--------------------------------------------
1  | 1       | 2019-02-05 20:15:00
2  | 3       | 2019-03-02 19:00:00

TBL_BANDINFO
ID | name 
---------
1  | ExampleBandA      
2  | ExampleBandB
3  | ExampleBandC
4  | ExampleBandD

所以我的问题是,获取例如只有一名成员 (1) 并且在 MySQL 中 2019-03-02 没有预约的所有乐队的最佳方法是什么。 它也应该适用于其他计数和日期,并从 TBL_BANDINFO 表返回带的名称和 ID。

谢谢!

最佳答案

您可以使用以下解决方案:

SELECT bi.ID, bi.name
FROM TBL_BANDINFO bi INNER JOIN TBL_BANDMEMBER bm ON bi.ID = bm.band_id 
WHERE NOT EXISTS (
    SELECT * 
    FROM TBL_APPOINTMENTS a 
    WHERE a.band_id = bi.ID AND appointment_date = '2019-03-02'
)
GROUP BY bi.ID, bi.name
HAVING COUNT(bi.ID) = 1

demo on dbfiddle.uk

关于mysql - 获取有关成员数量和预约日期的可用小组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959057/

相关文章:

mysql - 如何在MySQL中通过公式排序

mysql - 如何将表1字段的数据插入表2字段

php - 按最近日期查询sql

php - 如果 WHERE 子句为空则忽略条件

php - 使用 for 循环和数组 php 更新多行

php - mysql 表中没有重复值,但某些回显值重复

java - Websocket服务器检测数据库中的数据变化

mysql - 如何修复 Spring Boot 中的“"java.sql.SQLException: Column ' id' not found.”错误

mysql - 如何对电子表格和相关单元格引用使用查询

php - WordPress:如何使用 PHP 和 MySQL 更新数据库中的数据?