【问题标题】:List unique rows while join two tables based on given date根据给定日期连接两个表时列出唯一行
【发布时间】:2014-08-27 06:38:53
【问题描述】:

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

表格:预订

------------------------------------------ |展位号|预订日期 |状态 | |------------------------------------------------------| | 1 | 2014-08-15 |预订 | | 2 | 2014-09-10 |预订 | | 3 | 2014-09-11 |预订 | ------------------------------------------

表格:产品

-------------------------------------------------- - |展位号|描述 |锁定 |类型 | |------------------------------------------|------ --| | 1 | 2 x 瓶 |真实 |展位| | 2 | 2 x 瓶 | |展位| | 3 | 4 x 瓶 | |展位| | 4 | 4 x 瓶 | |展位| | 5 | 5 x 瓶 | |展位| | 6 | 5 x 瓶 | |展位| | | 20 美元的入场费 | |票 | -------------------------------------------------- -

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

-------------------------------------------------- -------------------------- |展位号|描述 |锁定 |类型 |请求日期 |状态 | |------------------------------------------|------ --|-------------|----------| | 1 | 2 x 瓶 |真实 |展位| 2014-08-15 |预订 | | 2 | 2 x 瓶 | |展位| | | | 3 | 4 x 瓶 | |展位| | | | 4 | 4 x 瓶 | |展位| | | | 5 | 5 x 瓶 | |展位| | | | 6 | 5 x 瓶 | |展位| | | -------------------------------------------------- --------------------------

【问题讨论】:

  • request_date 列从何而来?

标签: php mysql sql


【解决方案1】:
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
;

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

【讨论】:

  • 感谢您的回答。它的效果非常好,而且很容易理解。
  • 很高兴听到它对您有用。请不要忘记勾选答案,因为这表示关闭。
【解决方案2】:
SELECT * FROM products p LEFT OUTER JOIN bookings b ON p.booth_number = b.booth_number where request_date = 'YYYY-MM-DD'

【讨论】:

    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2018-09-23
    • 2021-10-21
    • 1970-01-01
    • 2020-02-17
    • 2021-01-14
    相关资源
    最近更新 更多