MySQL入門之使用SQL99標準的連線查詢

2021-07-25 23:48:31 字數 2586 閱讀 2434

使用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...