MySQL多表查詢(五)

多表查詢

關(guān)聯(lián)查詢 - 作用:可以跨多表查詢

查詢出員工的名字和他所在部門的名字【錯(cuò)誤】

select e.empno,e.ename,d.deptno,d.dname
from emp e,dept d

錯(cuò)誤原因:

以上寫法會出現(xiàn)笛卡爾積,產(chǎn)生很多冗余錯(cuò)誤的數(shù)據(jù),如果要

排除笛卡爾積,則應(yīng)該使用where字句進(jìn)行條件的過濾.

正確寫法:傳統(tǒng)方式

select e.empno,e.ename,d.deptno,d.dname
from emp e,dept d
where e.deptno = d.deptno
 [表的主鍵 = 表的外鍵]

給表格取別名,可以簡化SQL語句,還可以區(qū)別不同的列

正確寫法:join方式

select e.firstname,d.name from semp e join sdept on e.deptid=d.id;

多表連接查詢

1. 內(nèi)連接[ inner ] join : 多表連接滿足指定條件的結(jié)果集

table1  t1  inner join table2 t2
on  t1.列 = t2.列
a. 等值連接  : 連接的條件是 = 連接          on  t1.列 = t2.列
b.不等值連接 :  連接的條件是 不相等 連接    on t1.列 > t2.列
c.自然連接 natural join  (刪除重復(fù)列)
  • 使用表別名可以簡化查詢
  • 使用表名(表別名)前綴可提高查詢效率
inner_join.png

2. 外連接 outer join

(2.1) 左外連接 left [ outer ] join :
把左表與右表滿足條件查詢出來置吓,與左表不滿足條件的記錄也需要查詢出來
left_outer_join.png
(2.2) 右外連接 right [ outer ] join :
把左表與右表滿足條件查詢出來无虚,與右表不滿足條件的記錄也需要查詢出來
right_outer_join.png

3.自連接: 把表復(fù)制一份 作為另一個(gè)表

注意: 表一定要取別名

示例

(1). 查詢出在 ACCOUNTING 部門的員工編號,姓名

select empno, ename
from emp e  inner join dept d 
on e.deptno = d.deptno 
where d.dname = 'ACCOUNTING ';

(2) 查詢出所有部門的所有員工衍锚,列出所有部門信息友题、員工信息

select  * 
from emp e     join dept  d 
on e.deptno = d.deptno;

自然連接

select  * from emp  natural  join dept 

(3). 查詢在北京工作的員工的平均薪資

select avg(salary)
from emp e join dept d
on e.deptno = d.deptno 
where d.loc = 'beijing';

(4).查詢出各部門的員工人數(shù)(沒有員工的部門也需要統(tǒng)計(jì))

select d.deptno , count(e.empno)
from emp  e   right outer  join dept d
on e.deptno = d.deptno
group by d.deptno;

select d.deptno , count(e.empno)
from dept  d left  outer  join emp e
on e.deptno = d.deptno
group by d.deptno;

    +--------+----------+
    | deptno | count(*) |
    +--------+----------+
    |     10 |        3 |
    |     20 |        5 |
    |     30 |        6 |
    |     40 |        0 |
    |     50 |        0 |
    +--------+----------+

(5). 查詢出員工編號,姓名戴质,和該員工上級領(lǐng)導(dǎo)的編號與姓名 (給結(jié)果列名 取別名)

select e.empno 員工編號, e.ename 員工姓名,e.mgr  上級領(lǐng)導(dǎo)的編號, m.ename   上級領(lǐng)導(dǎo)的名稱 
from emp e  join emp m 
on e.mgr = m.empno ;

(6). 查詢出員工編號度宦,姓名,和該員工上級領(lǐng)導(dǎo)的編號與姓名 (給結(jié)果列名 取別名 告匠, 沒有上級領(lǐng)導(dǎo)的記錄也需要查詢)

select e.empno 員工編號, e.ename 員工姓名,e.mgr  上級領(lǐng)導(dǎo)的編號, m.ename   上級領(lǐng)導(dǎo)的名稱 
from emp e left  join emp m 
on e.mgr = m.empno ;

(7). 查詢出各年份員工入職人數(shù)

select YEAR(emp.hiredate),COUNT(emp.empno) 
from emp 
GROUP BY YEAR(emp.hiredate);

(8). 查詢出各年份各月份員工入職人數(shù)

select YEAR(emp.hiredate),MONTH(emp.hiredate),COUNT(emp.empno) 
from emp  
GROUP BY YEAR(emp.hiredate),MONTH(emp.hiredate);

(9). 查詢出在 ACCOUNTING 部門的員工編號戈抄,姓名

select e.empno,e.ename 
from emp e right join  dept d 
on e.deptno=d.deptno 
where d.dname='ACCOUNTING';

(10). 查詢在北京工作的員工的平均薪資

select  d.deptno,d.dname,avg(e.salary)
from emp e   join  dept d 
on e.deptno=d.deptno 
where d.loc='beijing'
group by d.deptno
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市后专,隨后出現(xiàn)的幾起案子划鸽,更是在濱河造成了極大的恐慌,老刑警劉巖行贪,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漾稀,死亡現(xiàn)場離奇詭異,居然都是意外死亡建瘫,警方通過查閱死者的電腦和手機(jī)崭捍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啰脚,“玉大人殷蛇,你說我怎么就攤上這事¢吓ǎ” “怎么了粒梦?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荸实。 經(jīng)常有香客問我匀们,道長,這世上最難降的妖魔是什么准给? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任泄朴,我火速辦了婚禮,結(jié)果婚禮上露氮,老公的妹妹穿的比我還像新娘祖灰。我一直安慰自己,他們只是感情好畔规,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布局扶。 她就那樣靜靜地躺著,像睡著了一般叁扫。 火紅的嫁衣襯著肌膚如雪三妈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天陌兑,我揣著相機(jī)與錄音沈跨,去河邊找鬼。 笑死兔综,一個(gè)胖子當(dāng)著我的面吹牛饿凛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播软驰,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼涧窒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锭亏?” 一聲冷哼從身側(cè)響起纠吴,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慧瘤,沒想到半個(gè)月后戴已,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體固该,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年糖儡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伐坏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡握联,死狀恐怖桦沉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情金闽,我是刑警寧澤纯露,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站代芜,受9級特大地震影響埠褪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜒犯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一组橄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罚随,春花似錦玉工、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潮改,卻和暖如春狭郑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汇在。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工翰萨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糕殉。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓亩鬼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阿蝶。 傳聞我的和親對象是個(gè)殘疾皇子雳锋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容