基础知识:
- 外连接分为两种:left join、right join
- 外连接显示的内容要比内连接多,是对内连接的补充
- left join的主表是左表,从表是右表;right join的主表是右表,从表是左表;
- 外连接会返回主表的所有数据,无论在从表是否有与之匹配的数据,若从表没有匹配的数据则默认为空值(NULL)
图解:
左链接和右链接的语法结构:
SELECT <字段名> FROM <表1> LEFT OUTER JOIN <表2> <ON子句> SELECT <字段名> FROM <表1> RIGHT OUTER JOIN <表2> <ON子句>
注意:outer可以省略,只写 left join 、 right join ;但不能省略,on是设置左连接的连接条件。
例子:
dept_emp表:
salaries表:
左连接:
SELECT * FROM dept_emp as a LEFT JOIN salaries as b on a.emp_no=b.emp_no
右连接:
SELECT * FROM dept_emp as a RIGHT JOIN salaries as b on a.emp_no=b.emp_no
补充:在使用外连接时,要分清查询的结果,是需要显示左表的全部记录,还是右表的全部记录:左连接与右连接是一样的,只是位置不同而已。
SELECT * FROM salaries as a RIGHT JOIN dept_emp as b on a.emp_no=b.emp_no