我有一个查询表,说具有字段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
怎么做 ?
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值,因此您将获得:
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。
0
IFNULL
NVL