MySQL outer join Tutorial

August 18

Outer join combinare due o più tabelle in un modo che alcune colonne possono avere valori NULL. MySQL separa outer join in DESTRA o SINISTRA SI UNISCE a seconda di quale tabella fornisce i dati senza pari. In un LEFT JOIN, i record non corrispondenti dalla tabella sul lato sinistro della clausola JOIN vengono restituiti. In un RIGHT JOIN, i record non corrispondenti dalla tabella sul lato destro della clausola JOIN vengono restituiti.

A destra ea sinistra UNISCE

MySQL legge le tabelle nell'ordine determinato dalla clausola JOIN. Nel sinistra si unisce, la tabella di sinistra viene letta prima della tabella di destra. In diritto entra a far parte, la tabella di destra viene letta prima del sinistro. Tutti i dati vengono restituiti dalla tabella che viene letta prima, e poi i dati dalla seconda tabella è abbinato. Tutti i record non corrispondenti vengono restituiti con valori nulli.
Gli esempi useranno i seguenti due tabelle:

Indirizzo
nome cognome staddress zip
Kris Masters 635 Anywhere Ave 17598
Steve Milano 503 A cuore aperto 17989
James Teeney 379 Kensington Ct 98.539
Pam Buffy 501 W 69th St 80907

Cap
città stato CAP
Lancaster, PA 17989
Wiconisco PA 17598
Arancione CA 80907
New York NY 50648

La sintassi per un LEFT JOIN è:

SELEZIONE fname, lname, staddress, città, stato, zip.zipcode DA indirizzo LEFT JOIN codice postale UTILIZZO (zip);

Questa query restituire i seguenti risultati:

Kris | Masters | 635 Anywhere Ave | Wiconisco | PA | 17598 |
| Steve | Milano | 503 A cuore aperto | Lancaster | PA | 17989 |
| Pam | Buffy | 501 W 69th St | arancione | CA | 80907
| James | Teeney | 379 Kensington Ct | NULL | NULL | NULL |

Come si può vedere, tutti i record della tabella di sinistra (indirizzo) vengono restituiti, con valori nulli per i record mancanti dalla tabella a destra (codice postale).

La sintassi per un RIGHT JOIN è:

SELEZIONE fname, lname, staddress, città, stato, zip.zip indirizzo FROM RIGHT JOIN codice postale UTILIZZO (zip)
ANDARE

Quali sarebbero tornati tutti i valori dalla tabella di destra (codice postale) con valori nulli per i dati mancanti dalla tabella degli indirizzi.
Kris | Masters | 635 Anywhere Ave | Wiconisco | PA | 17598 |
| Steve | Milano | 503 A cuore aperto | Lancaster | PA | 17989 |
| Pam | Buffy | 501 W 69th St | arancione | CA | 80907
| NULL | NULL | NULL | New York | NY | 50648 |

È possibile fornire la parola "ESTERNO" per ODBC (Open Database Connectivity) per applicazioni di terze parti, ma questo è opzionale dal punto di vista di MySQL. La sintassi sarebbe allora:

SELEZIONE fname, lname, staddress, città, stato, zip.zipcode DA indirizzo LEFT OUTER JOIN codice postale UTILIZZO (zip);