2011-10-07 40 views
5

複数の結合を1つのソーステーブルから複数のテーブルに実行する方法を探しています。次のような:複数のLEFT JOIN、1対多数

SELECT a.NAME, b.address, c.phone 
FROM tblname a 
LEFT JOIN tbladdress b ON a.nid = b.nid 

私も左を実行したいが、同時に電話テーブルtblPhoneに参加:私はこれを置くためにどのように私を見ることができない可能性があるとして

tblname a left join tblPhone c on a.PID = c.PID 

は試してみてください1つのクエリに変換します。

+0

?すべての順列で30行? –

+0

このシナリオでは、住所と電話は一意であり、それぞれ1つの値です。あなたの提案に感謝します。私はRedFilterの答えで働いています –

答えて

15

必要とされてあなたは単に、何度でもごJOIN句を繰り返すことができます例:あなたがする結果をしたいですか何名が6つのアドレスと5本の電話が関連付けられている場合

SELECT a.NAME 
    ,b.address 
    ,c.phone 
FROM tblname a 
LEFT JOIN tbladdress b ON a.nid = b.nid 
LEFT JOIN tblPhone c ON a.PID = c.PID 
2
SELECT a.name, b.address, c.phone 
FROM tblname a 
left join tbladdress b on a.nid = b.nid 
left join tblPhone c on a.PID = c.PID; 
+0

スカイは限界です。ちょうど42回以上のジョインをしないでください。 –

0
SELECT a.name, b.address, c.phone 
FROM (tblname a 
    left join tbladdress b on a.nid = b.nid) c 
left join tblPhone d on c.PID=d.PID 
関連する問題