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