oracle 中的連線可分為,內連線(inner join) 、外連線(outer join) 、全連線(full join) ,不光是oracle ,其他很多的資料庫也都有這3 種連線查詢方式
內連線inner join ,這是我們經常用的查詢方式,比如select * from a,b where a.field1=b.field2 ,這樣的連線就是內連線,內連線查詢只能查詢出匹配的記錄,匹配不上的記錄時無法查詢出來的
外連線outer join ,可進一步分為左外連線left outer join 和右外連線right outer join ,具體說一下左外連線和右外連線查詢的特點,有2 個表,部門表和職工表,乙個部門下可以有多個職工,乙個職工只能對應乙個部門,所以部門和職工時1 對多的關係,設計表如下
部門表dept
deptid deptname
1 開發部
2 財務部
3 人事部
職工表employee
eid deptid ename
1 1 劉德華
2 1 張惠妹
3 5 張學友
比如現在有需求,要進行部門表和職工表的關聯查詢,並要查詢出所有的部門資訊,這時候,下面的左連線查詢就能夠查詢出想要的結果,左連線就是以left join 前面的表為主表,即使有些記錄關聯不上,主表的資訊能夠查詢出來的
select * from dept left outer join employee on dept.deptid=employee.deptid
比如現在有需求,要進行部門表和職工表的關聯查詢,並要查詢出所有的職工資訊,這時候,下面的右連線查詢就能夠查詢出想要的結果,右連線就是以right join 後面的表為主表,即使有些記錄關聯不上,主表的資訊能夠查詢出來
select * from dept right outer join employee on dept.deptid=employee.deptid
總之,外連線就是在關聯不上的時候,把其中的部分資訊查詢出來
3. 全連線full join ,語法為full join ... on ... ,全連線的查詢結果是左外連線和右外連線查詢結果的並集,即使一些記錄關聯不上,也能夠把部分資訊查詢出來
乙個非常不錯的**:http://database.ctocio.com.cn/oracle/
連表查詢(內連線,左外連線,右外連線)
用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...
Mysql連表查詢(內連線 外連線)
建立兩張 並分別插入資料 create table ifnot exists left table id int auto increment,age int,name varchar 20 primary key id engine innodb default charset utf8 auto...
oracle內連線 外連線
表testa,testb,testc,各有a,b兩列 a b001 10a002 20a a b 001 10b 003 30b a b001 10c004 40c 連線分為兩種 內連線與外連線。a 內連線 內連線,即最常見的等值連線,例 select fromtesta,testb wherete...