(INNER) JOIN: restituisce i record con valori corrispondenti in entrambe le tabelle.
LEFT (OUTER) JOIN: restituisce tutti i record dalla tabella di sinistra e i record corrispondenti dalla tabella di destra.
RIGHT (OUTER) JOIN: restituisce tutti i record dalla tabella di destra e i record corrispondenti dalla tabella di sinistra.
FULL (OUTER) JOIN: restituisce tutti i record in caso di corrispondenza nella tabella sinistra o destra
Ad esempio, supponiamo di avere due tabelle con i seguenti record:
Tabella A
id firstname lastname
___________________________
1 Ram Thapa
2 sam Koirala
3 abc xyz
6 sruthy abc
Tabella B
id2 place
_____________
1 Nepal
2 USA
3 Lumbini
5 Kathmandu
Inner Join
Nota: indica l'intersezione di due tabelle.
Sintassi
SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Applicalo nella tabella di esempio:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA INNER JOIN TableB ON TableA.id = TableB.id2;
Il risultato sarà:
firstName lastName Place
_____________________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
Sinistra Join
Nota: fornirà tutte le righe selezionate in TableA, più eventuali righe selezionate comuni in TableB.
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Applicalo nella tabella di esempio
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA LEFT JOIN TableB ON TableA.id = TableB.id2;
Il risultato sarà:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
Partecipa a destra
Nota: fornirà tutte le righe selezionate in TableB, più eventuali righe selezionate comuni in TableA.
Sintassi:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Applicalo nella tua tabella samole:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA RIGHT JOIN TableB ON TableA.id = TableB.id2;
Il risultato sarà bw:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
Null Null Kathmandu
Partecipazione completa
Nota: è uguale all'operazione di unione, restituirà tutti i valori selezionati da entrambe le tabelle.
Sintassi:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
Applicalo nel tuo campionario [le table:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA FULL JOIN TableB ON TableA.id = TableB.id2;
Il risultato sarà:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
Null Null Kathmandu
Alcuni fatti
Per INNER si unisce all'ordine non importa
Per i join ESTERNI (SINISTRA, DESTRA o COMPLETO), l'ordine conta
Scopri di più su w3schools
RIGHT JOIN
se possiamo ottenere qualsiasi risultato desiderato con soloLEFT JOIN
? : P