在 MySQL 中,左联(Left Join)是一种常见的关系数据库操作,用于将两个表中的数据按照某种条件连接起来,其中 左表 的所有行都会被保留,即使右表中没有匹配的行,此时右表的匹配行会以 NULL 值填充。
一、左联的语法
SELECT column1, column2
FROM table1
LEFT JOIN table2 ON table1.id = table2.id;
table1:左表(主表)table2:右表(被连接的表)ON table1.id = table2.id:连接条件LEFT JOIN:表示左联
二、左联的含义
- 左表中的所有行都会被选中,即使右表中没有匹配的行。
- 右表中匹配的行会与左表的行进行关联。
- 如果右表中没有匹配的行,那么右表的列会显示为
NULL。
三、示例
假设我们有两个表:
表 employees(左表)
| id | name | department |
|---|---|---|
| 1 | Alice | HR |
| 2 | Bob | IT |
| 3 | Charlie | Sales |
表 departments(右表)
| id | department_name |
|---|---|
| 1 | HR |
| 2 | IT |
| 4 | Sales |
执行以下 SQL:
SELECT e.id, e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department = d.id;
结果如下:
| id | name | department_name |
|---|---|---|
| 1 | Alice | HR |
| 2 | Bob | IT |
| 3 | Charlie | Sales |
四、左联的使用场景
- 需要保留左表的所有数据,即使右表没有匹配项。
- 用于获取左表所有记录,结合右表的某些信息。
五、其他相关操作
- 右联(Right Join):与左联对称,保留右表的所有行。
- 全联(Full Join):保留两个表的所有行。
- 内联(Inner Join):只保留两个表中匹配的行。
六、总结
- 左联:保留左表所有行,右表匹配行与之关联。
- 语法:
LEFT JOIN,连接条件ON。 - 用途:获取左表所有数据,结合右表信息。
如需进一步了解 MySQL 的 JOIN 类型或优化技巧,可以继续提问!
