MySQL中的外连接
MySQL中的外連接
外連接是指查詢出符合連接條件的數據同時還包含孤兒數據。
一、孤兒數據
孤兒數據是指被連接的列的值為空的數據。
二、左外連接(left outer join)
左外連接包含左表的孤兒數據;
例
一、向 employees 表中添加一條數據,名字:Lee,email :lee@sxt.cn入職時間為今天。他沒有薪 水,沒有經理,沒有傭金。
Insert into employees(last_name , email , hire_date ) values(“lee” , “lee@sxt.cn” , sysdate());二、查詢所有雇員的名字以及他們的部門名稱,包含那些沒有部門的雇員。
Select e.last_name , d.department_name from employees e left outer join departments d on e.dept_id = d.department_id;三、右外連接(right outer join)
右外連接包含右表的孤兒數據;
例
一、向 departments 表中添加一條數據,部門名稱為 Testing,工作地點 ID為 5。
Insert into departments(department_name , location_id) values(“Testing” , 5);二、查詢所有雇員的名字以及他們的部門名稱,包含那些沒有雇員的部門。
Select e.last_name , d.department_name from employees e right outer join departments d on e. dept_id = d.department_id;四、全外連接
MySQL中不支持full outer join連接,可以使用union實現完全連接;
?Union
可以將兩個查詢結果合并,返回的行都是唯一的,如同對整個結果集使用了distinct;(去除了重復)
?Union all
只是簡單的將兩個結果合并后就返回。這樣,如果返回的兩個結果集中有重復 數據,那么返回的結果集就會包含充分的數據了;(不會去掉重復)
?語法結構
Select 投影列 from 表名 left outer join 表名 on 連接條件 union select 投影 列 from 表名 right outer join 表名 on 連接條件;
例
查詢所有雇員的名字以及他們的部門名稱,包含那些沒有雇員的部門以及 沒有部門的雇員。
總結
以上是生活随笔為你收集整理的MySQL中的外连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL中的多表连接
- 下一篇: SQL99标准中的查询(MySQL)