2016-03-24 5 views
1

私はこの仕事をする方法を理解しようと数日間壁に頭を打ちました。mySql各グループの不足している値を結合する

私は、次の

CustID | CatName 
---------------- 
1  ModelX 

1  ModelY 

2  ModelX 

3  ModelY 

ModelName | Price 
-------------------- 
ModelX  $1000 

ModelY  $500 

ModelZ  $200 

所望の出力が

ID | ModelName | Price 
------------------------- 
1  ModelX  $1000 

1  ModelY  $500 

1  ModelZ  $200 

2  ModelX  $1000 

2  ModelY  $500 

2  ModelZ  $200 

3  ModelX  $1000 

3  ModelY  $500 

3  ModelZ  $200 

私はどのように不明確だだろうそして、別のテーブル "価格" テーブル "顧客" を持っています各不一致CatNameを各IDに取得します。私は外部結合を行うと、不足しているレコードを取得しますが、それは一度だけリストされ、少なくとも1つのCatNameに一致するものがあれば、他のCatNamesに一致しません。 ie

CustID | CatName | Price 
---------------------------- 
1   ModelX  $1000 

1   ModelY  $500 

2   ModelX  $1000 

2   ModelY  $500 

3   ModelY  $500 

(null)  ModelZ  $200 

+0

私達にあなたの現在のクエリを表示します –

答えて

1

あなたが示した結果は、顧客と価格の間CutsIDとデカルト積上distinc

select distinct * 
    from (select a.custID as custID, b.modelName, b.price 
      from customers as a, price b) as mytable 
    order by custID; 
+0

distinctは関数ではありません - 括弧は無関係です – Bohemian

0

あるべきCustoners内の各個別のIDにすべての価格行に参加:

select CustID, CatName, Price 
from Prices, (select distinct CustID from Customers) c 
関連する問題