"left" è il risultato di tutto ciò che appare prima nell'intera clausola FROM durante la lettura da sinistra a destra, incluso il risultato di altri JOIN, sottocommissioni, VISUALIZZAZIONI e PROCEDURE MEMORIZZATE. L'ordine delle tabelle nella parte ON
della clausola JOIN
è irrilevante, quindi entrambe le istruzioni SQL sono equivalenti.
Il join regolare mostra solo le righe in cui la clausola ON di JOIN è vera, mentre LEFT JOIN mostra anche i record da "left" se la condizione è false (mostrando NULL per qualsiasi colonna da "right" presente in il SELEZIONA).
Ad esempio:
-- People: -- Car
id | name owner_id | model
---+------------ ---------+------------
1 | Paul 1 | Ferrari
2 | Nancy 2 | Porsche
3 | Arthur NULL | Lamborghini
4 | Alfred 10 | Maserati
> select people.name, car.model from people join car on car.owner_id=people.id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
2 record(s) found
> select people.name, car.model from people left join car on
car.owner_id=people.id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
Arthur | NULL
Alfred | NULL
4 record(s) found
> select people.name, car.model from people left join car on
people.id = car.owner_id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
Arthur | NULL
Alfred | NULL
4 record(s) found
fonte
2010-11-05 20:23:07
Questo URL attualmente punta a example.com ... –
@djacobson: Grazie, corretto. Niente è così smaccilo da non poter essere rovinato! –
Smiple, eh? * Infatti –