列出唯一的行,同时根据给定日期连接两个表


List unique rows while join two tables based on given date

我有两张表,一张包含预订信息,另一张包含产品信息。下订单时,在预订表中创建一个新记录。我想得到一个组合表,其中包含基于给定日期的两个表中的所有列。

表:预订

------------------------------------------|booth_number|booking_date|状态||------------------------------------------||1 | 2014-08-15 |已预订||2|2014-09-10|已预订||3 | 2014-09-11 |已预订|------------------------------------------

表:产品

---------------------------------------------------|booth_number|desc|locked|type||------------------------------------------|--------||1|2x瓶|true|展位||2|2瓶||展位||3|4瓶||展位||4|4瓶||展位||5|5瓶||展位||6|5瓶||展位|||$20门票|---------------------------------------------------

经过查询,当请求日期为2014-08-15 时,我想得到如下结果

-----------------------------------------------------------------------------|booth_number|desc|locked|type|request_date|status||------------------------------------------|--------|--------------|----------||1|2瓶|true|展位|2014-08-15|已预订||2|2个瓶子||展位||||3|4个瓶子||展位||||4|4瓶||展位||||5|5瓶||展位||||6|5瓶||展位|||-----------------------------------------------------------------------------
SELECT
      *
FROM products p
      LEFT JOIN bookings b
                  ON p.booth_number = b.booth_number
                        AND booking_date = '2014-08-15'
WHERE p.booth_number IS NOT NULL
ORDER BY p.booth_number
;

这将列出在某一天预订或未预订的所有展位。

SELECT * FROM products p LEFT OUTER JOIN bookings b ON p.booth_number = b.booth_number where request_date = 'YYYY-MM-DD'