2012-08-06 17 views
50

Tengo tres tablas que deseo unir internamente por una columna común entre ellas.Unión interna tres tablas

Digamos que mis tablas son;

TableA TableB TableC 

Deseo unirme A-B, pero luego también B-C todo por este campo común que se llame común.

Me he unido a dos tablas como esta;

dbo.tableA AS A INNER JOIN dbo.TableB AS B 
ON A.common = B.common 

¿Cómo agrego el tercero?

+2

dbo.tableA UN S INNER JOIN dbo.TableB AS B EN A.common = B.common combinación interna dbo.TableC como C en C.common = B.common – praveen

Respuesta

87
select * 
from 
    tableA a 
     inner join 
    tableB b 
     on a.common = b.common 
     inner join 
    TableC c 
     on b.common = c.common 
+0

¿Cómo se vería la tabla de salida? Diga SO preguntas y comentarios a cada pregunta, y responda a cada pregunta y comentario a cada respuesta. Tres tablas preguntas, respuestas, comentarios. –

+1

@ ışık Obtendrá todas las columnas de la tabla A, luego todas las columnas de la tabla B y luego todas las columnas de la tabla C. O puede elegir las columnas que desee – podiluska

+1

Lo que está sucediendo detrás de la segunda UNIÓN INTERNA; ¿Nos estamos uniendo al resultado que pregunta ¿Hay una tabla temporal que se crea desde la primera unión? Si hay una tabla temporal, ¿cómo llamamos a esa tabla? – lft93ryt

6
dbo.tableA AS A INNER JOIN dbo.TableB AS B 
ON A.common = B.common INNER JOIN TableC C 
ON B.common = C.common 
11

Sólo hacen lo mismo pero luego volveré para TableC

SELECT * 
FROM dbo.tableA A 
INNER JOIN dbo.TableB B ON A.common = B.common 
INNER JOIN dbo.TableC C ON A.common = C.common 
5

tratar el siguiente código

select * from TableA A 
inner join TableB B on A.Column=B.Column 
inner join TableC C on A.Column=C.Column 
2

intente esto:

SELECT * FROM TableA 
JOIN TableB ON TableA.primary_key = TableB.foreign_key 
JOIN TableB ON TableB.foreign_key = TableC.foreign_key 
Cuestiones relacionadas