mysql join选择两个表之间的min(date)和max(date)

时间:2013-05-23 06:26:16

标签: mysql

我的数据库中有两个表,一个用于场地,另一个用于预订。我需要的是一个查询来选择所有未预订的场地。见下文:

表格预订包含以下字段:

  • bk_id

  • venue_id作为(预订表)

  • 的外键
  • start_date(作为日期类型)//指示场地何时不会

  • 可用于预订end_date(作为日期类型)//表示结束 预订日期,从这里开始,地点将是 可预订

和场地表有以下字段:

  • venue_id作为主键 等。

我需要的是能够搜索所有未预订的场地。我应该如何设置我的mysql查询

1 个答案:

答案 0 :(得分:0)

对于未在特定日期预订的场地,请使用

SELECT * FROM venue WHERE venue_id NOT IN (SELECT venue_id FROM booking WHERE {YOUR_DATE} BETWEEN  start_date AND end_date)

对于从未预订的场地

SELECT * FROM venue WHERE venue_id NOT IN (SELECT venue_id FROM booking)