INNER JOIN和left join的区别
时间: 2024-11-23 12:24:27 浏览: 24
INNER JOIN 和 LEFT JOIN 是 SQL 中用于合并两个表的不同方式。
INNER JOIN 只返回两个表中匹配(即 ON 子句指定条件下的)记录。简单来说,它只包括那些在两个表中都有匹配项的数据。如果某个记录在其中一个表中不存在对应项,则不会出现在结果集中[^1]。
LEFT JOIN 则会返回左表(table1)的所有记录,即使右表(table2)没有匹配。如果有匹配项,这些记录会被合并;如果没有匹配,右表的字段将显示 NULL 值。所以,LEFT JOIN 保留了左表的所有信息,而 INNER JOIN 只保留有交集的部分。
举个例子:
假设我们有两个表,一个是 Employees (ID, Name), 另一个是 Departments (ID, ManagerID),INNER JOIN 会找出员工和部门 ID 匹配的记录,而 LEFT JOIN 则会列出所有员工,即使他们没有对应的部门经理。
```sql
-- INNER JOIN 示例
SELECT E.Name, D.DepartmentName
FROM Employees E
INNER JOIN Departments D
ON E.ID = D.ManagerID;
-- LEFT JOIN 示例
SELECT E.Name, COALESCE(D.DepartmentName, 'No Department') AS Department
FROM Employees E
LEFT JOIN Departments D
ON E.ID = D.ManagerID;
```
阅读全文