2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
In MySQL,LEFT JOIN
Utilizzato per restituire tutti i record dalla tabella di sinistra (ovvero la tabella a sinistra della parola chiave LEFT JOIN), anche se non sono presenti record corrispondenti nella tabella di destra. Per i record che non corrispondono nella tabella di destra, la parte della tabella di destra del set di risultati verrà riempita con NULL.DiON
EWHERE
L'uso delle clausole, sono in usoLEFT JOIN
I ruoli sono diversi:
ON
Dopo.se dentroON
Successivamente verranno applicate ulteriori restrizioni condizionali sulla tabella di destra, che verranno applicate anche durante la connessione, ma non influenzeranno il principio di restituzione di tutti i record dalla tabella di sinistra.JOIN
Il set di risultati generato dall'operazione viene ulteriormente filtrato.Quando viene posta la condizioneWHERE
clausola, quei record che non soddisfano le condizioni (sia dalla tabella di sinistra che da quella di destra) verranno rimossi, il che potrebbe influenzare l'intenzione originale di restituire tutti i record dalla tabella di sinistra, specialmente quando si gestiscono valori NULL, è necessario essere molto attento.Caso specifico uno:
Supponiamo di avere due tabelle, una lo èemployees
(tabella dei dipendenti), l'altro lo èdepartments
(tabella dei dipartimenti), vogliamo scoprire tutti i dipendenti e i nomi dei loro dipartimenti, anche se alcuni dipendenti non sono assegnati a un dipartimento specifico.
tavolo dipendenti:
id | nome |
---|---|
1 | Alice |
2 | Bob |
3 | Carol |
tabella dipartimenti:
id | nome |
---|---|
1 | Risorse umane |
2 | ESSO |
3 | Marketing |
In,employees
tavolodepartment_id
Il campo può essere NULL, indicando che non è stato assegnato alcun reparto.
Esempio di utilizzo ON:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;