Left join 和right join 為外部連接,inner join 為內部連接
Left join 左側為主表,右側為從表,主表會顯示出所有數據,從表則只顯示關聯到的數據,不滿足連接條件 的行數據用NULL補全
right join 右側為主表,左側為從表,主表會顯示出所有數據,從表則只顯示關聯到的數據,不滿足連接條件 的行數據用NULL補全
inner join 則只顯示2張表關聯條件相匹配的數據
(1)dept(部門表)

(2)emp(雇員表)

1、inner join
語法:select a.x from a inner join b on a.id=b.id;
inner 可以省略.
實例:
select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a join scott.dept b on a.deptno = b.deptno ;
結果:

3、left outer join
查詢結果除了返回包含連接條件的行,還包含a表中不滿足條件的行。其中不滿足的條件行中B表的字段將被置空
語法: select a.x form a left outer join a on a.id=b.id outer可以省略
實例:
select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on a.deptno = b.deptno
結果:

當查詢中出現過濾條件時:
1)當連接條件后面有where條件時:
select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on a.deptno = b.deptno where b.dname like 'SALES'
解釋:先根據連接條件a.deptno = b.deptno查詢,再對查詢結果按過濾條件查詢。
結果:

2)當連接條件后面有and條件時:
select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on (a.deptno = b.deptno and b.dname like 'SALES')
解釋:先對b表按過濾條件查詢,再對結果執行左連接查詢。
結果:

3 、right outer join
查詢結果除了返回包含連接條件的行,還包含右表(b)中不滿足連接條件的行,
其中不滿足連接條件的行中a表的字段值將被置為空。
語法:select a.x from a right join a on a.id=b.id
outer 可以省略.
參考文檔:https://www.cnblogs.com/dog2016/p/7402019.html
