我的数据库中有两张表,一张用于 field ,另一张用于预订。我需要的是一个查询来选择所有未预订的 field 。见下文:
餐 table 预订具有以下字段:
bk_id
venue_id 作为(预订表)的外键
start_date(作为日期类型)//指示何时 field 不会
- 可预订 end_date (as date type )//表示结束 预订日期,从这里开始, field 将是 可供预订
field 表有以下字段:
- venue_id 作为主键 等等
我需要的是能够搜索到所有未预订的 field 。我应该如何设置我的 mysql 查询
最佳答案
对于未在特定日期预订的 field 使用
SELECT * FROM venue WHERE venue_id NOT IN (SELECT venue_id FROM booking WHERE {YOUR_DATE} BETWEEN start_date AND end_date)
对于从未被预订的 field
SELECT * FROM venue WHERE venue_id NOT IN (SELECT venue_id FROM booking)
关于mysql join 选择两个表之间的最小(日期)和最大(日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706959/