2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
MySQL:ssä,LEFT JOIN
Käytetään palauttamaan kaikki tietueet vasemmasta taulukosta (eli LEFT JOIN -avainsanan vasemmalla puolella oleva taulukko), vaikka oikeanpuoleisessa taulukossa ei olisi vastaavia tietueita. Niille tietueille, jotka eivät täsmää oikeanpuoleisessa taulukossa, tulosjoukon oikeanpuoleinen taulukkoosa täytetään arvolla NULL.noinON
jaWHERE
Lausekkeiden käyttö, ne ovat mukanaLEFT JOIN
Roolit ovat erilaisia:
ON
myöhemmin.jos sisäänON
Oikealle taulukolle on myöhemmin lisäehtoisia rajoituksia, joita sovelletaan myös yhdistämisen yhteydessä, mutta ne eivät vaikuta periaatteeseen palauttaa kaikki tietueet vasemmasta taulukosta.JOIN
Toiminnan muodostama tulosjoukko suodatetaan edelleen.Kun ehto on asetettuWHERE
lauseke, ne tietueet, jotka eivät täytä ehtoja (joko vasemmasta tai oikeasta taulukosta), poistetaan, mikä voi vaikuttaa alkuperäiseen tarkoitukseen palauttaa kaikki tietueet vasemmasta taulukosta, varsinkin kun käsittelet NULL-arvoja, sinun on oltava erityisen varovainen.Yksi erityinen tapaus:
Oletetaan, että meillä on kaksi pöytää, yksi onemployees
(työntekijätaulukko), toinen ondepartments
(osastotaulukko), haluamme selvittää kaikki työntekijät ja heidän osastojen nimet, vaikka jotkin työntekijät eivät olisikaan määrätty tietylle osastolle.
työntekijöiden taulukko:
id | nimi |
---|---|
1 | Alice |
2 | Bob |
3 | Carol |
osastojen taulukko:
id | nimi |
---|---|
1 | HR |
2 | SE |
3 | Markkinointi |
sisään,employees
pöytädepartment_id
Kenttä voi olla NULL, mikä tarkoittaa, että osastoa ei ole määritetty.
Esimerkki ON käytöstä:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;