mysql join 选择两个表之间的最小(日期)和最大(日期)

标签 mysql

我的数据库中有两张表,一张用于 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/

相关文章:

php - 如何在 Laravel-5 中构建子查询

mysql - REGEXP MySQL - 几个组,无论哪个顺序

MySQL - 建议链接多个表 - 这是正确的吗?

mysql - 在 sql 2012 中自动化存储过程

MySql:获得比百分之一秒更精确的时间测量

大型数据库插入的时间戳之间的 Java 计数

php - 如何从数据库中的图像 ID 生成 url?

MySQL查找具有字段最大值的行

mysql - Hibernate 不填充 AUTO_INCREMENT 列作为复合 PK、错误或反功能的一部分?

mysql - 选择每组计数项目