Principales respuestas
inner join con 3 tablas

Pregunta
-
Hola a todos!! Tengo una duda,
Vereis tengo 1 tabla que esta relacionada con 2 tablas. Quisiera obtener el resultado de todos aquellos registros que tienen algún registro relacionado en la tabla 2 o en la tabla 2, básicamente estoy realizando la siguiente consulta
selec * from tabla1 right join tabla2 on tabla1.cod = tabla2.cod right join tabla3 on tabla1.cod=tabla3.cod
El tema es que solo me devuelve resultados si hay registros relacionados en la tabla2 y en la tabla3, sabeis como puedo solucionarlo??
Un saludo y muchas gracias.
Respuestas
-
Hola,
A ver si esta funciona:
select tabla1 .*,'Con Tabla2' from tabla1,tabla2 WHERE tabla1.cod = tabla2.cod UNION select tabla1 .*,'Con Tabla3' from tabla1,tabla3 WHERE tabla1.cod = tabla3.cod
Victor Koch
- Marcado como respuesta Vicdeju viernes, 25 de abril de 2014 11:57
Todas las respuestas
-
Hola,
A ver si esta funciona:
select tabla1 .*,'Con Tabla2' from tabla1,tabla2 WHERE tabla1.cod = tabla2.cod UNION select tabla1 .*,'Con Tabla3' from tabla1,tabla3 WHERE tabla1.cod = tabla3.cod
Victor Koch
- Marcado como respuesta Vicdeju viernes, 25 de abril de 2014 11:57
-
No se si entendí bien.
Supongamos:
Tabla1
Cod
1
2Tabla2
Cod
1
3Tabla3
Cod
2
4Resultado esperado ?
cod cod cod
1 1 NULL
2 NULL 2Dado que:
El codigo 1 existe en tabla1 y en tabla2
El codigo 2 existe en tabla1 y en tabla3
Si es eso debes usar left
Select * From Tabla1 A left Join tabla2 B On a.cod=b.cod
left Join tabla3 c on a.cod=c.codRecuerda que la primera tabla te condiciona el resultado de las siguientes.
Nos comentas.
CristianPM.
DBA SQL Server Santiago/Chile
-