使用sql99標準的連線查詢(join..on..)
內連線
只返回滿足連線條件的資料(兩邊都有的才顯示)。
select e., d.
from emp e
inner join dept d
on e.deptno=d.deptno
– 也可以省略inner關鍵字。
select e.*, d.*
from emp e inner join dept d
on e.deptno=d.deptno
左外連線
左邊有值才顯示。
select e.*, d.*
from emp e
left outer join dept d
on e.deptno=d.deptno
-- 也可以省略outer關鍵字
右外連線
右邊邊有值才顯示。
select e.*, d.*
from emp e
right outer join dept d
on e.deptno=d.deptno
-- 也可以省略outer關鍵字
滿外聯接
任一邊有值就會顯示。
select e.*, d.*
from emp e
full outer join dept d
on e.deptno=d.deptno
-- 也可以省略outer關鍵字
交叉連線:
叉集,就是笛卡爾積
select e.*, d.*
from emp e
cross join dept d
eg:查詢員工資訊,員工號,姓名,月薪,部門名稱
select e.empno, e.ename, e.sal, d.dname
from emp e, dept d
where e.deptno=d.deptno
select e.empno, e.ename, e.sal, d.dname
from emp e inner join dept d -- 逗號join
on e.deptno=d.deptno -- where on
//顯示所有部門資訊
//顯示各個部門的部門人數
select d.deptno 部門號, d.dname 部門名稱,count(e.empno) 人數
from emp e, dept d
where e.deptno(+)=d.deptno
group by d.deptno, d.dname
select d.deptno 部門號, d.dname 部門名稱,count(e.empno) 人數
from emp e right outer join dept d
on e.deptno=d.deptno
group by d.deptno, d.dname
自連線: – 查詢員工資訊 ,老闆資訊
顯示:*的老闆是*
select e.ename , b.ename
from emp e, emp b
where e.mgr=b.empno
select concat ( concat(e.ename, 『的老闆是』), b.ename)
from emp e, emp b
where e.mgr=b.empno
select e.ename, ifnull(b.ename,』他自己』)
from emp e left outer join emp b
on e.mgr=b.empno
select concat ( concat(e.ename, 『的老闆是』), ifnull(b.ename,』他自己』))
from emp e left outer join emp b
on e.mgr=b.empno
+————————————————————————+
| concat ( concat(e.ename, 『的老闆是』), ifnull(b.ename,』他自己』)) |
+————————————————————————+
| smith的老闆是ford |
| allen的老闆是blake |
| ward的老闆是blake |
| jones的老闆是king |
| martin的老闆是blake |
| blake的老闆是king |
| clark的老闆是king |
| scott的老闆是jones |
| king的老闆是他自己 |
| turner的老闆是blake |
| adams的老闆是scott |
| james的老闆是blake |
| ford的老闆是jones |
| miller的老闆是clark |
+————————————————————————+
四 SQL99外連線
外連線除了能顯示滿足連線條件的資料以外,還用於顯示不滿足連線條件的資料 left outer join,表示左外連線,可以顯示左表中不滿足連線條件的資料 select e.ename,e.job,d.deptno,d.dname,d.loc from dept d left join emp e o...
oracle筆記三(Sql99語法)
1.交叉連線cross join 相當於笛卡爾積效果 select e.ename,d.dname from emp e cross join dept d 2.自然連線 natural join select e.ename,d.dname from emp e natural join dept...
sql99語法 左 右 外連線
二 外連線 應用 查詢乙個表中有,另乙個表沒有的記錄 特點 1.外連線的查詢結果為主表中的所有記錄 如果從表中有和它匹配的,則顯示匹配的值 如果從表中沒有和他匹配的,則顯示null 外連線查詢結果 內連線 主表中有而從表中沒有的記錄 2 左外連線 left join 左邊的是主表 右外連線 righ...