我是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无效。我已经尝试过子查询,但是我对它们不熟悉。
答案 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
列。