如何使用共享ID查询DATE表以从另一列中获取值

时间:2019-06-16 15:36:00

标签: sql

我是SQL的新手,我正在努力解决问题。

我有一个产品销售表,其中的日期列与ID与日期表相匹配。

我想查询产品销售表以带回一些重要的关键信息,但是带有日期的列的ID非常有用。我正在尝试找出如何将这些ID转换为日期表中存在的完整格式。

到目前为止,我的结构是

产品销售

 - id
 - item_id
 - order_date_id
 - delivery_date_id
 - cancel_date_id
 - price
 - quantity

商品说明

 - id
 - item_title

日期表

 - id
 - full_format

我正在尝试返回以下列:

 - Order date (using full format)
 - Item title
 - Delivery date (using full format)
 - Cancel date (using full format)
 - Price
 - Quantity

我可以将产品销售和产品表加入产品标题中,但是我正努力查询日期表并返回所有3个日期的完整格式。当前产品销售表中的ID无效。我已经尝试过子查询,但是我对它们不熟悉。

1 个答案:

答案 0 :(得分:0)

您可以在以下SELECT条件下使用JOIN语句

select d1.full_format as order_date, i.item_title, 
       d2.full_format as delivery_date,
       d3.full_format as cancel_date,
       p.price, p.quantity 
  from Product_sales p
  left join Item_description i on i.id = p.item_id
  left join Date_table d1 on d1.id = p.order_date_id
  left join Date_table d2 on d2.id = p.delivery_date_id
  left join Date_table d3 on d3.id = p.cancel_date_id;

在使用LEFT JOIN的情况下,可以更好地选择不匹配记录存在的可能性,我认为Date_table具有唯一的id列。