2013-07-04 14 views
5

Sto cercando di trovare le righe condivise da tutte e quattro le tabelle. Ho provato ad utilizzare questo:Utilizzare l'intersezione su più due tabelle?

SELECT * 
FROM TABLE1 
INTERSECT 
SELECT * 
FROM TABLE2 
INTERSECT 
SELECT * 
FROM TABLE3 
INTERSECT 
SELECT * 
FROM TABLE4;  

ma non ottenne risultati, so che ci sono righe che soddisfano questo requisito. Perché usando l'unione invece e aggiungendo "ordina per" vedo quattro righe con la stessa descrizione da tabelle diverse.

risposta

5

Usa INNER JOIN con condizioni sui campi che si desidera
es:

SELECT 
    t1.* 
FROM 
    TABLE1 t1 
INNER JOIN TABLE2 t2 
    ON t1.field1 = t2.field1 
    AND t1.field2 = t2.field2 
    ... 
INNER JOIN TABLE2 t3 
    ON t1.field1 = t3.field1 
    AND t1.field2 = t3.field2 
... 
+0

@Ferium vostra destra la sua non 'INTERSECT' thx – Stephan

+0

@Ferium ma' INTERNO JOIN' farà il lavoro – Stephan

+0

@Ferium spettacolo la query che hai usato – Stephan