MySQL中的左联结(Left Join)用于将左表中的所有记录和右表中符合条件的记录组合在一起输出。左表中的所有记录都会出现在结果中,而右表中没有对应匹配的记录会被填充为NULL。
LEFT JOIN 语法格式如下:
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
可以看到,LEFT JOIN关键字后面的语句中包含了两个表名称,同时使用ON 连接它们。等式后面的column_name是左表和右表都具有的列名,左表的所有行都会与右表的匹配行连接。
下面给出一个Left Join的实例,假设现在有两张表,一张是员工信息表employees,另一张是员工薪水表salaries,它们包含了两个相同的列emp_no,我们想要按照员工的编号和薪水输出员工姓名和薪水,如果员工在员工薪水表中不存在则将其薪水设为NULL:
SELECT employees.emp_name, salaries.salary
FROM employees
LEFT JOIN salaries ON salaries.emp_no = employees.emp_no;
这里我们将左表设为employees表,右表为salaries表,两个表的关联条件是salaries表的emp_no列和employees表的emp_no列相匹配。注意到我们使用employees表中的名称输出数据结果,如果希望使用salaries表中的名称,可以将SELECT语句修改为:
SELECT salaries.emp_name, salaries.salary
FROM employees
LEFT JOIN salaries ON salaries.emp_no = employees.emp_no;