找到可用场地的MYSQL查询?

时间:2016-03-16 18:41:27

标签: mysql

我有两张桌子:

venue (name, venue_id, capacity etc)
venue_booking (venue_id and date_booked)

我有输入用户想要预订场地的日期($ date)。

我如何找到一个场地是否可以预订在场地预订表中尚未预订的$ date?

如何在当天找到可用的场地?

2 个答案:

答案 0 :(得分:1)

sql支持NOT IN运算符:

select *
from venue
where venue_id not in (
    select venue_id
    from venue_booking
    where date_booked=$date)

别忘了

  1. date_booked应为日期列,不含时间组件
  2. 日期文字应以引号显示,例如
  3. 像:

    where date_booked = '2016-10-20'
    

    另外,您可能需要date function

答案 1 :(得分:1)

使用NOT EXISTS

<强>查询

SELECT * FROM venue v
WHERE NOT EXISTS(
    SELECT 1 FROM venue_booking
    WHERE venue_id = v.venue_id
    AND date_booked = 'date_value' -- change date_value accordingly
);

<强> SQL Fiddle demo