我正在尝试获取具有特定成员数并且在特定日期可以使用(无需预约)的所有组(乐队)。
我有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没有约会的所有Band的最佳方法是什么? 它也应该适用于其他计数和日期,并从TBL_BANDINFO表中返回频段的名称和ID。
谢谢!
答案 0 :(得分:0)
您可以使用以下解决方案:
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