📜  SQL 左连接

📅  最后修改于: 2021-09-10 02:27:25             🧑  作者: Mango

SQL 中的 LEFT JOIN 关键字返回所有匹配的记录(或行)以及出现在左表中但不在右表中的记录(或行)。这意味着,如果某行存在于左表中但不在右表中,则结果将包括该行,但在右侧的每一列中都有一个 NULL 值。如果右表中的记录不在左表中,则不会包含在结果中。

左加入

LEFT JOIN 的语法是:

SELECT column_name(s) 
FROM tableA 
LEFT JOIN tableB ON tableA.column_name = tableB.column_name;

SQL 左连接示例:

在这个例子中,我们将考虑两个表 Employee 包含在特定部门工作的员工的详细信息,以及包含部门详细信息的部门表

员工表

emp_no emp_name age salary dept_no
E1 Varun Singhal 27 30,000 D1
E2 Amrita Aggarwal 28 25,000 D2
E3 Ravi Anand 30 34,000 D1
E4 Nitin Saini 34 54,000 [NULL]
E5 Muskan Garg 35 65,000 [NULL]

部门表

dept_no dept_name location
D1 IT Delhi
D2 HR Hyderabad
D3 FINANCE Rajasthan

要对这两个表执行左连接,我们将使用以下 SQL 查询:

select emp_no ,emp_name , age, salary ,dept_name, location 
from employee 
left join department on empolyee.dept_no=department.dept_no;

我们将得到的输出如下:-

emp_no emp_name age salary dept_name location
E1 Varun Singhal 27 30,000 IT Delhi
E3 Ravi Anand 30 34,000 IT Delh
E2 Amrita Singhal 28 25,000 HR Hyderabad
E4 Nitin Saini 34 54,000 [NULL] [NULL]
E5 Muskan Garg 35 65,000 [NULL] [NULL]

左连接给出匹配的行和出现在左表中但不在右表中的行。在此示例中,我们看到不在特定部门工作的员工,即没有 dept 值为 [NULL],在左连接后包含 [NULL] 值 dept name 和 location。