2012-08-06 14 views
50

Ho tre tabelle che desidero unire internamente da una colonna comune tra di loro.Interno Unione di tre tabelle

Dire che le mie tabelle sono;

TableA TableB TableC 

desidero unire A-B, ma poi anche B-C tutti da questa campo comune mi chiamerà comune.

Mi sono unito a due tabelle come questa;

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

Come si aggiunge il terzo?

+2

dbo.tableA UN S A INNER JOIN dbo.TableB AS B ON A.common = B.common inner join dbo.TableC come C su C.common = B.common – praveen

risposta

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

Come apparirebbe la tabella di output. Pronunciare domande e commenti ad ogni domanda e risposte a ogni domanda e commento ad ogni risposta. Tre tavoli domande, risposte, commenti. –

+1

@ ışık Otterrete tutte le colonne dalla tabella A, quindi tutte le colonne dalla tabella B, quindi tutte le colonne da tableC. Oppure puoi scegliere le colonne che vuoi – podiluska

+1

Cosa sta succedendo dietro il secondo INNER JOIN; ci stiamo unendo all'output che chiede C'è una tabella temporanea creata dal primo join? Se c'è una tabella temporanea, allora come chiamiamo quella tabella. – 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

Basta fare la stessa cosa verremo ma poi per 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

provare il seguente codice

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

provare questo:

SELECT * FROM TableA 
JOIN TableB ON TableA.primary_key = TableB.foreign_key 
JOIN TableB ON TableB.foreign_key = TableC.foreign_key 
Problemi correlati