我正在尝试获取具有特定成员数量并且在特定日期可用(没有预约)的所有团体(乐队)。
我有 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
关于mysql - 获取有关成员数量和预约日期的可用小组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959057/