Il primo collegamento avevano preventivato ti dà:
INNER JOIN
: restituisce le righe quando c'è una partita in entrambe le tabelle.
LEFT JOIN/LEFT OUTER JOIN
: restituisce tutte le righe dalla tabella di sinistra, anche se non ci sono corrispondenze nella tabella di destra.
RIGHT JOIN/RIGHT OUTER JOIN
: restituisce tutte le righe dalla tabella di destra, anche se non ci sono corrispondenze nella tabella di sinistra.
FULL JOIN/FULL OUTER JOIN/OUTER JOIN
: restituisce righe quando c'è una corrispondenza in una delle tabelle.
SELF JOIN
: è utilizzato per unire una tabella a se stesso, come se la tabella fosse costituita da due tabelle, rinominando temporaneamente almeno una tabella nell'istruzione SQL.
CARTESIAN JOIN
: restituisce il prodotto cartesiano dei set di record dalle due o più tabelle unite.
Il self join
in realtà non è un special join
. Riflette solo il fatto che puoi unirti a un tavolo con se stesso. In tal caso, devi renderlo alias per far fronte al fatto che appare più di una volta nella stessa dichiarazione.
Il cartesian join
può essere considerato come un inner join
senza condizioni restrittive. Oppure è possibile visualizzare uno inner join
come cartesian join
con una restrizione aggiunta (condizione di join).
fonte
2013-03-15 06:03:45
Sono la stessa. – EmCo
'LEFT JOIN' è uguale a' LEFT OUTER JOIN'. La parola chiave 'OUTER' è * opzionale *. –
@ JW. Ho visto il collegamento qualunque cosa tu abbia suggerito. È molto utile. Ma ancora non ha soddisfatto tutti i miei dubbi. http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – PSR