小编典典

将SQL查找表与数据表连接

sql

我有一个查询表,说具有字段CityId,CityName的城市

CityId   CityName
1        New York 
2        San Francisco
3        Chicago

我有一个订单表,其中包含以下字段:CityId,CustId,CompletedOrders,PendingOrders

CityId CustId CompletedOrders PendingOrders
1       123   100             50
2       123   75              20

我想要一个表/报告,列出所有城市中给定客户的订单详细信息,即我需要的结果是:

CityId CityName      CustId CompletedOrders PendingOrders
1      New York      123    100             50
2      San Francisco 123    75              20
3      Chicago       123    0               0

怎么做 ?


阅读 243

收藏
2021-04-22

共1个答案

小编典典

SELECT
  c.CityId
  c.CityName
  o.CustId,
  o.CompletedOrders
  o.PendingOrders
FROM cities c
LEFT JOIN orders o ON ( c.CityId = o.CityId )

这将返回所需的所有行,但是对于其中不存在的details行将返回NULL值,因此您将获得:

CityId CityName      CustId CompletedOrders PendingOrders
1      New York      123    100             50
2      San Francisco 123    75              20
3      Chicago       123    NULL            NULL

0取而代之的解决方案取决于您的数据库。与MySQL一起使用IFNULL,与Oracle一起使用NVL

2021-04-22