NOM*_*OMO 4 sql lookup database-design join
我有一个查找表说城市有字段CityId,CityName
CityId CityName
1 New York
2 San Francisco
3 Chicago
Run Code Online (Sandbox Code Playgroud)
我有一个订单表,其中包含字段:CityId,CustId,CompletedOrders,PendingOrders
CityId CustId CompletedOrders PendingOrders
1 123 100 50
2 123 75 20
Run Code Online (Sandbox Code Playgroud)
我想要一个表/报告,列出所有城市中给定客户的订单详情,即我需要的结果是:
CityId CityName CustId CompletedOrders PendingOrders
1 New York 123 100 50
2 San Francisco 123 75 20
3 Chicago 123 0 0
Run Code Online (Sandbox Code Playgroud)
怎么做 ?
SELECT
c.CityId
c.CityName
o.CustId,
o.CompletedOrders
o.PendingOrders
FROM cities c
LEFT JOIN orders o ON ( c.CityId = o.CityId )
Run Code Online (Sandbox Code Playgroud)
这将返回您想要的所有行,但是对于其中不存在的details行将返回NULL值,因此您将获得:
CityId CityName CustId CompletedOrders PendingOrders
1 New York 123 100 50
2 San Francisco 123 75 20
3 Chicago 123 NULL NULL
Run Code Online (Sandbox Code Playgroud)
0取而代之的解决方案取决于您的数据库.使用MySQL IFNULL,与Oracle一起使用NVL.
| 归档时间: |
|
| 查看次数: |
23547 次 |
| 最近记录: |