多表連接查詢

兩張表谤辜,按指定條件鹏秋,連接成一張表
從連接的結果表中查詢


多表連接
-- 查詢員工,顯示員工的部門名
select e.id,e.fname,e.sal,d.dept_id,d.dept_name
from emps e,depts d
where e.dept_id=d.dept_id;
-- 習慣上主表在前寫

-- 地區(qū)表
select * from locations;
-- 查詢部門 顯示部門的城市
select d.dept_id,d.dept_name,l.city
from depts d,locations l
where d.loc_id=l.loc_id;
員工表

-- 查詢部門,顯示部門經理名
select d.dept_id,d.dept_name,e.fname
from depts d,emps e
where d.mgr_id=e.id;

運行結果

+---------+------------------+-----------+
| dept_id | dept_name        | fname     |
+---------+------------------+-----------+
|      10 | Administration   | Jennifer  |
|      20 | Marketing        | Michael   |
|      30 | Purchasing       | Den       |
|      40 | Human Resources  | Susan     |
|      50 | Shipping         | Adam      |
|      60 | IT               | Alexander |
|      70 | Public Relations | Hermann   |
|      80 | Sales            | John      |
|      90 | Executive        | Steven    |
|     100 | Finance          | Nancy     |
|     110 | Accounting       | Shelley   |
+---------+------------------+-----------+
自連接
-- 查詢員工悦污,顯示員工主管名
select e1.id,e1.fname as employee,e1.sal,e2.fname as manager
from emps e1,emps e2
where e1.mgr_id=e2.id;

運行結果

+-----+-------------+----------+-----------+
| id  | employee    | sal      | manager   |
+-----+-------------+----------+-----------+
| 101 | Neena       | 17000.00 | Steven    |
| 102 | Lex         | 17000.00 | Steven    |
| 103 | Alexander   |  9000.00 | Lex       |
| 104 | Bruce       |  6000.00 | Alexander |
| 105 | David       |  4800.00 | Alexander |
| 106 | Valli       |  4800.00 | Alexander |
| 107 | Diana       |  4200.00 | Alexander |
| 108 | Nancy       | 12000.00 | Neena     |
| 109 | Daniel      |  9000.00 | Nancy     |
| 110 | John        |  8200.00 | Nancy     |
| 111 | Ismael      |  7700.00 | Nancy     |
| 112 | Jose Manuel |  7800.00 | Nancy     |
| 113 | Luis        |  6900.00 | Nancy     |
| 114 | Den         | 11000.00 | Steven    |
| 115 | Alexander   |  3100.00 | Den       |
| 116 | Shelli      |  2900.00 | Den       |
| 117 | Sigal       |  2800.00 | Den       |
| 118 | Guy         |  2600.00 | Den       |
| 119 | Karen       |  2500.00 | Den       |
| 120 | Matthew     |  8000.00 | Steven    |
| 121 | Adam        |  8200.00 | Steven    |
| 122 | Payam       |  7900.00 | Steven    |
| 123 | Shanta      |  6500.00 | Steven    |
| 124 | Kevin       |  5800.00 | Steven    |
| 125 | Julia       |  3200.00 | Matthew   |
| 126 | Irene       |  2700.00 | Matthew   |
| 127 | James       |  2400.00 | Matthew   |
| 128 | Steven      |  2200.00 | Matthew   |
| 129 | Laura       |  3300.00 | Adam      |
| 130 | Mozhe       |  2800.00 | Adam      |
| 131 | James       |  2500.00 | Adam      |
| 132 | TJ          |  2100.00 | Adam      |
| 133 | Jason       |  3300.00 | Payam     |
| 134 | Michael     |  2900.00 | Payam     |
| 135 | Ki          |  2400.00 | Payam     |
| 136 | Hazel       |  2200.00 | Payam     |
| 137 | Renske      |  3600.00 | Shanta    |
| 138 | Stephen     |  3200.00 | Shanta    |
| 139 | John        |  2700.00 | Shanta    |
| 140 | Joshua      |  2500.00 | Shanta    |
| 141 | Trenna      |  3500.00 | Kevin     |
| 142 | Curtis      |  3100.00 | Kevin     |
| 143 | Randall     |  2600.00 | Kevin     |
| 144 | Peter       |  2500.00 | Kevin     |
| 145 | John        | 14000.00 | Steven    |
| 146 | Karen       | 13500.00 | Steven    |
| 147 | Alberto     | 12000.00 | Steven    |
| 148 | Gerald      | 11000.00 | Steven    |
| 149 | Eleni       | 10500.00 | Steven    |
| 150 | Peter       | 10000.00 | John      |
| 151 | David       |  9500.00 | John      |
| 152 | Peter       |  9000.00 | John      |
| 153 | Christopher |  8000.00 | John      |
| 154 | Nanette     |  7500.00 | John      |
| 155 | Oliver      |  7000.00 | John      |
| 156 | Janette     | 10000.00 | Karen     |
| 157 | Patrick     |  9500.00 | Karen     |
| 158 | Allan       |  9000.00 | Karen     |
| 159 | Lindsey     |  8000.00 | Karen     |
| 160 | Louise      |  7500.00 | Karen     |
| 161 | Sarath      |  7000.00 | Karen     |
| 162 | Clara       | 10500.00 | Alberto   |
| 163 | Danielle    |  9500.00 | Alberto   |
| 164 | Mattea      |  7200.00 | Alberto   |
| 165 | David       |  6800.00 | Alberto   |
| 166 | Sundar      |  6400.00 | Alberto   |
| 167 | Amit        |  6200.00 | Alberto   |
| 168 | Lisa        | 11500.00 | Gerald    |
| 169 | Harrison    | 10000.00 | Gerald    |
| 170 | Tayler      |  9600.00 | Gerald    |
| 171 | William     |  7400.00 | Gerald    |
| 172 | Elizabeth   |  7300.00 | Gerald    |
| 173 | Sundita     |  6100.00 | Gerald    |
| 174 | Ellen       | 11000.00 | Eleni     |
| 175 | Alyssa      |  8800.00 | Eleni     |
| 176 | Jonathon    |  8600.00 | Eleni     |
| 177 | Jack        |  8400.00 | Eleni     |
| 178 | Kimberely   |  7000.00 | Eleni     |
| 179 | Charles     |  6200.00 | Eleni     |
| 180 | Winston     |  3200.00 | Matthew   |
| 181 | Jean        |  3100.00 | Matthew   |
| 182 | Martha      |  2500.00 | Matthew   |
| 183 | Girard      |  2800.00 | Matthew   |
| 184 | Nandita     |  4200.00 | Adam      |
| 185 | Alexis      |  4100.00 | Adam      |
| 186 | Julia       |  3400.00 | Adam      |
| 187 | Anthony     |  3000.00 | Adam      |
| 188 | Kelly       |  3800.00 | Payam     |
| 189 | Jennifer    |  3600.00 | Payam     |
| 190 | Timothy     |  2900.00 | Payam     |
| 191 | Randall     |  2500.00 | Payam     |
| 192 | Sarah       |  4000.00 | Shanta    |
| 193 | Britney     |  3900.00 | Shanta    |
| 194 | Samuel      |  3200.00 | Shanta    |
| 195 | Vance       |  2800.00 | Shanta    |
| 196 | Alana       |  3100.00 | Kevin     |
| 197 | Kevin       |  3000.00 | Kevin     |
| 198 | Donald      |  2600.00 | Kevin     |
| 199 | Douglas     |  2600.00 | Kevin     |
| 200 | Jennifer    |  4400.00 | Neena     |
| 201 | Michael     | 13000.00 | Steven    |
| 202 | Pat         |  6000.00 | Michael   |
| 203 | Susan       |  6500.00 | Neena     |
| 204 | Hermann     | 10000.00 | Neena     |
| 205 | Shelley     | 12000.00 | Neena     |
| 206 | William     |  8300.00 | Shelley   |
+-----+-------------+----------+-----------+

內連接與外連接

內連接與外連接

內連接:只查詢滿足連接條件的數據

外連接
不滿足連接條件的數據也要查詢
左外連接:查詢左側表條件外數據
右外連接:查詢右側表條件外數據
全外連接: 雙側表條件外數據
MySql不支持全外連接
數據庫外連接非標準語法不同
sqlserver
where a.id=b.xid(+)右外連接
where a.id(+)=b.xid左外連接
oracle
where a.id=* b.xid左外連接
where a.id*=b.xid右外連接
mysql
沒有外連接的非標準語法
標準的表連接語法

select ... from a join b (a.id=b.xid); -- 內連接
select ... from a join b (a.id=b.xid);
                         join c
                         on(....);    -- 內連接
select ... from a left join b (a.id=b.xid);
                         join c
                         on(....);  --左外連接
select ... from a right join b (a.id=b.xid);
                         join c
                         on(....);  --右外練級
-- 查詢部門,顯示部門經理名
select d.dept_id,d.dept_name,e.fname
from depts d
    left join emps e
    on(d.mgr_id=e.id);
    
-- 查詢部門,顯示部門經理名
select d.dept_id,d.dept_name,e.fname
from depts d,emps e
where d.mgr_id=e.id;

-- 查詢等價
-- 所有部門,顯示部門經理,沒有經理顯示null 顯示左側表以外的數據
select d.dept_id,d.dept_name,e.fname
from depts d
    left join emps e
    on(d.mgr_id=e.id);

運行結果

+---------+----------------------+-----------+
| dept_id | dept_name            | fname     |
+---------+----------------------+-----------+
|      10 | Administration       | Jennifer  |
|      20 | Marketing            | Michael   |
|      30 | Purchasing           | Den       |
|      40 | Human Resources      | Susan     |
|      50 | Shipping             | Adam      |
|      60 | IT                   | Alexander |
|      70 | Public Relations     | Hermann   |
|      80 | Sales                | John      |
|      90 | Executive            | Steven    |
|     100 | Finance              | Nancy     |
|     110 | Accounting           | Shelley   |
|     120 | Treasury             | NULL      |
|     130 | Corporate Tax        | NULL      |
|     140 | Control And Credit   | NULL      |
|     150 | Shareholder Services | NULL      |
|     160 | Benefits             | NULL      |
|     170 | Manufacturing        | NULL      |
|     180 | Construction         | NULL      |
|     190 | Contracting          | NULL      |
|     200 | Operations           | NULL      |
|     210 | IT Support           | NULL      |
|     220 | NOC                  | NULL      |
|     230 | IT Helpdesk          | NULL      |
|     240 | Government Sales     | NULL      |
|     250 | Retail Sales         | NULL      |
|     260 | Recruiting           | NULL      |
|     270 | Payroll              | NULL      |
+---------+----------------------+-----------+
-- 查詢107個員工螟碎,顯示部門和城市
-- 員工和部門先連
select e.id,e.fname,e.sal,d.dept_name
from emps e
    left join depts d
    on(e.dept_id=d.dept_id);
-- 員工和部門先連后和地區(qū)表連
select e.id,e.fname,e.sal,d.dept_name,l.city
from emps e
    left join depts d
    on(e.dept_id=d.dept_id)
    left join locations l
    on(d.loc_id=l.loc_id);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迹栓,隨后出現的幾起案子掉分,更是在濱河造成了極大的恐慌,老刑警劉巖迈螟,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叉抡,死亡現場離奇詭異,居然都是意外死亡答毫,警方通過查閱死者的電腦和手機褥民,發(fā)現死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洗搂,“玉大人消返,你說我怎么就攤上這事≡拍矗” “怎么了撵颊?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惫叛。 經常有香客問我倡勇,道長,這世上最難降的妖魔是什么嘉涌? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任妻熊,我火速辦了婚禮夸浅,結果婚禮上,老公的妹妹穿的比我還像新娘扔役。我一直安慰自己帆喇,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布亿胸。 她就那樣靜靜地躺著坯钦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侈玄。 梳的紋絲不亂的頭發(fā)上婉刀,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音序仙,去河邊找鬼路星。 笑死,一個胖子當著我的面吹牛诱桂,可吹牛的內容都是我干的洋丐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挥等,長吁一口氣:“原來是場噩夢啊……” “哼友绝!你這毒婦竟也來了?” 一聲冷哼從身側響起肝劲,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤迁客,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辞槐,有當地人在樹林里發(fā)現了一具尸體掷漱,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榄檬,在試婚紗的時候發(fā)現自己被綠了卜范。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹿榜,死狀恐怖海雪,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情舱殿,我是刑警寧澤奥裸,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站沪袭,受9級特大地震影響湾宙,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一侠鳄、第九天 我趴在偏房一處隱蔽的房頂上張望嗡害。 院中可真熱鬧,春花似錦畦攘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹃骂,卻和暖如春台盯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畏线。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工静盅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寝殴。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓蒿叠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蚣常。 傳聞我的和親對象是個殘疾皇子市咽,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容

  • 連接查詢就是求出多個表的乘積,例如t1連接t2抵蚊,那么查詢出的結果就是t1*t2 連接查詢會產生笛卡爾積施绎,假設集合A...
    WXFA閱讀 335評論 0 0
  • 1、內聯接(典型的聯接運算贞绳,使用像 = 或 <> 之類的比較運算符)谷醉。包括相等聯接和自然聯接。 內聯接使用比較運算...
    Temple_Li閱讀 165評論 0 0
  • 首先創(chuàng)建一個測試的數據庫 在創(chuàng)建兩張測試表 給兩張表插入數據 一 多表連接查詢 1. 笛卡爾積(交叉連接) 在My...
    Dl_毛良偉閱讀 951評論 0 16
  • 多表查詢分為 內、外連接 外連接分為左連接(left join 或left outer join)萎攒、右連接(rig...
    阿甘呀閱讀 847評論 0 0
  • 很多時候号显,愛你的人近在咫尺,可讓你柔腸百轉躺酒,牽腸掛肚的卻往往是另外一個人押蚤。你以為這是愛情,其實羹应,這是出于人的...
    大可兒2688閱讀 139評論 0 0