在 SQL 中,左关联是一种连接操作,它将左表中的所有行与右表中匹配的行连接在一起。如果右表中没有匹配的行,则左表中的行仍将保留,但右表中的列将显示为 NULL。
**优点:**
保留所有左表数据,即使没有匹配的右表数据。
允许提取右表中与左表行相关的其他信息。
**语 法:**
sql
SELECT *
FROM left_table
LEFT JOIN right_table
ON left_table.key_column = right_table.key_column;
**示例:**
假设我们有两个表:
people:
| id | name |
|---|---|
| 1 | John |
| 2 | Mary |
addresses:
| person_id | address |
|---|---|
| 1 | 123 Main Street |
| 3 | 456 Oak Street |
如果我们执行以下左关联:
sql
SELECT *
FROM people
LEFT JOIN addresses
ON people.id = addresses.person_id;
结果将是:
| id | name | address |
|---|---|---|
| 1 | John | 123 Main Street |
| 2 | Mary | NULL |
正如您所见,John 的地址已从 addresses 表中带出,而 Mary 没有匹配的地址,因此 address 列显示为 NULL。
**注意事项:**
* 左关联可能会导致重复的数据,因为左表中的每条记录都会与右表中的所有匹配记录连接。
* 如果右表很大,可能会影响查询性能。
* 确保将适当的列用作联接键,以确保正确匹配。