📜  SQL左联接

📅  最后修改于: 2021-07-05 06:27:41             🧑  作者: 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,它们包含在特定部门工作的雇员的详细信息,而department表则包含该部门的详细信息

员工表

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]

左联接给出匹配的行以及左表中存在但右表中不存在的行。在此示例中,我们看到不在特定部门工作的员工(即部门没有[NULL]值)在左加入后包含部门名称和位置的[NULL]值。