2011-10-07 72 views
5

我正在寻找一种方法来执行从一个源表到多个表的多个连接。类似以下内容:SQL Server多个LEFT JOIN,一对多

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 

尝试,因为我可能,我不能看到如何把这个到一个查询中。

+0

如果名字已经6点的地址和5个手机相关的,你想要的结果,有待?每排有30行? –

+0

在这种情况下,地址和电话是唯一的/每个值。谢谢你的建议我得到它与RedFilter的答案 –

回答

15

你可以简单地重复你JOIN条款多次是必要的,例如:

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