2011-10-07 30 views
5

Estoy buscando una forma de realizar varias uniones desde una tabla fuente a más de una tabla. De manera similar a lo siguiente:SQL Server Múltiple LEFT JOIN, uno a muchos

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

También quiero realizar una combinación izquierda sobre la mesa Teléfono tblPhone al mismo tiempo:

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

mucho que lo intentaba no puedo ver cómo decir esto en una consulta

+0

Si un nombre tiene 6 direcciones y 5 teléfonos asociados, ¿qué quieres que el resultado sea ? 30 filas con cada permutación? –

+0

En este escenario, la dirección y el teléfono son únicos/un valor cada uno. Gracias a todos por sus sugerencias lo conseguí trabajando con la respuesta de RedFilter –

Respuesta

15

Usted puede simplemente repetir sus JOIN cláusulas tantas veces como sea necesario, por ejemplo:

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

Sky es el límite. Simplemente no vayas más de 42 combinaciones. –

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