2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
No MySQL,LEFT JOIN
Usado para retornar todos os registros da tabela esquerda (ou seja, a tabela à esquerda da palavra-chave LEFT JOIN), mesmo se não houver registros correspondentes na tabela direita. Para os registros que não correspondem na tabela correta, a parte da tabela correta do conjunto de resultados será preenchida com NULL.sobreON
eWHERE
O uso de cláusulas, elas estão emLEFT JOIN
As funções são diferentes:
ON
mais tarde.se emON
Existem restrições condicionais adicionais na tabela direita posteriormente, que também serão aplicadas durante a conexão, mas não afetarão o princípio de retornar todos os registros da tabela esquerda.JOIN
O conjunto de resultados gerado pela operação é ainda filtrado.Quando a condição é colocadaWHERE
cláusula, os registros que não atenderem às condições (seja da tabela esquerda ou da tabela direita) serão removidos, o que pode afetar a intenção original de retornar todos os registros da tabela esquerda, especialmente ao lidar com valores NULL, você precisa estar extremamente cuidadoso.Caso específico um:
Suponha que temos duas tabelas, uma éemployees
(tabela de funcionários), a outra édepartments
(tabela de departamento), queremos descobrir todos os funcionários e os nomes de seus departamentos, mesmo que alguns funcionários não estejam atribuídos a um departamento específico.
tabela de funcionários:
eu ia | nome |
---|---|
1 | Alice |
2 | Prumo |
3 | Carol |
tabela de departamentos:
eu ia | nome |
---|---|
1 | RH |
2 | ISTO |
3 | Marketing |
em,employees
mesadepartment_id
O campo pode ser NULL, indicando que não há departamento atribuído.
Exemplo de uso de ON:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;