5

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

どうやってするか ?

4

2 に答える 2

11
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

于 2010-01-06T18:27:24.727 に答える
1

これを試して

select c.CityId,c.CityName,o.CustId,o.CompletedOrders,o.PendingOrders

from orders Left join cities 

on o.CityId = c.CityId
于 2010-01-06T18:30:05.697 に答える