SQL查詢單表數(shù)據(jù)之組合(三)

【SQL從一點一滴分析系列文章】為實際開發(fā)中的點點滴滴的總結(jié)曲横,從最最簡單的SQL 查詢 到 綜合分析查詢
在分析 SQL 時生年,也會同時分析 mybatis 榨乎、Hibernate 中的相關(guān)操作
點擊查看詳情

本節(jié)講述 基本的 select 查詢單表數(shù)據(jù)語句

1 對查詢數(shù)據(jù)結(jié)果集的組合(并集)

有這樣的需求棋嘲,要交來自多個表的數(shù)據(jù)組織到一起抵知,就像是一個結(jié)果集疊加到另一個上頁面一樣县爬,例如有兩個表

表一 用戶 t_user 表


在這里插入圖片描述

表二 部門 t_dep 表


在這里插入圖片描述

我們要顯示 t_user 表中的用戶的 名字和年齡以及 t_dep 表中用戶的名字年齡阳啥,我們可以使用 union all 來把多個表中的行組合到一起

select user_name,user_age 
    from t_user 
    union all 
select dep_user_name,dep_user_age 
    from t_dep

查詢結(jié)果如下


在這里插入圖片描述

我們可以看到有兩條重復(fù) 張三 數(shù)據(jù),如果要去重财喳,我們可以使用 union 運算符

select user_name,user_age 
    from t_user 
    union  
select dep_user_name,dep_user_age 
    from t_dep

UNION 操作符用于合并兩個或多個 SELECT 語句的結(jié)果集
UNION ALL 命令和 UNION 命令幾乎是等效的察迟,不過 UNION ALL 命令會列出所有的值

Union:對兩個結(jié)果集進行并集操作斩狱,不包括重復(fù)行,同時進行默認規(guī)則的排序扎瓶;
Union All:對兩個結(jié)果集進行并集操作所踊,包括重復(fù)行,不進行排序概荷;

2 組合兩個表中相關(guān)的行

例如這種情況秕岛,要顯示用戶表中所有用戶的姓名,以及每個員工的心情日志误证,這些數(shù)據(jù)存儲在兩個獨立的表中


select u.user_name,d.dep_user_flag
     from t_user u,t_dep d
where u.user_id = d.dep_user_id

這兩個表中通過 用戶的 id 來關(guān)聯(lián)继薛,用戶表中 user_id ,部門表中愈捅,dep_user_id 為用戶在用戶表中對應(yīng)的id.

3 對查詢數(shù)據(jù)結(jié)果集的組合(交集)

需要查找兩個表中共同的行遏考,但是有多個列可以用來聯(lián)接這兩個表,如下

在 MySql 和 SQL Server 中蓝谨,可使用多個聯(lián)接條件灌具,將 user 表 與 dep 表中聯(lián)接起來

select u.user_name as userName,d.dep_user_flag userFlag,d.dep_user_age as age
    from t_user u,t_dep d
where 
    u.user_name = d.dep_user_name 
    and 
    u.user_age = d.dep_user_age

或者使用 join on 子句聯(lián)接

select u.user_name as userName,d.dep_user_flag userFlag,d.dep_user_age as age
    from t_user u 
    join t_dep d
    on  (
        u.user_name = d.dep_user_name 
        and 
        u.user_age = d.dep_user_age)
4 從一個表中查詢另一個表沒有的值(兩個表的補集)

MySQL 和 SQL Server 中

select u.user_name as userName,u.user_age as age
    from t_user u
where  u.user_name not in (select dep_user_name from t_dep)

使用子名查出 dep 表中所有的 user_name,然后外層查詢則從 user 表中查找 子查詢結(jié)果中沒有的行

Oracle 中

select u.user_name from t_user u
minus 
select d.dep_user_name from t_dep d

minus指令是運用在兩個 SQL 語句上。它先找出第一個 SQL 語句所產(chǎn)生的結(jié)果像棘,然后看這些結(jié)果有沒有在第二個 SQL 語句的結(jié)果中稽亏。如果有的話,那這一筆資料就被去除缕题,而不會在最后的結(jié)果中出現(xiàn)

DB2 和 PostgreSQL 中使用集合操作 except

select u.user_name from t_user u
except 
select d.dep_user_name from t_dep d
5 向查詢中增加聯(lián)接而不影響其他聯(lián)接

例如 用戶信息表 user ,部門信息工作表 dep 截歉,員工獎勵表 bonus 表,我們需要返回所有的員工信息烟零、他們工作部門的心情信息瘪松、以及所獲得的獎勵,在這里锨阿,并不是每個員工都有部門心情信息宵睦,也并不是每個員工有獎勵信息,但是我們希望把所有的信息查詢出來墅诡,這時我們可以這樣來寫

在 MySQL 壳嚎、DB2、 PostgreSQL 和SQL Server 中


select u.user_name,u.user_age,d.dep_user_flag,b.bonus_count
from t_user u 

left join t_dep d on d.dep_user_id = u.user_id 
left join t_bonus b on b.bonus_user_id = u.user_id 


在這里插入圖片描述

這三個表中 分別通過 user_id 來關(guān)聯(lián)


完結(jié)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末末早,一起剝皮案震驚了整個濱河市烟馅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌然磷,老刑警劉巖郑趁,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姿搜,居然都是意外死亡寡润,警方通過查閱死者的電腦和手機捆憎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梭纹,“玉大人躲惰,你說我怎么就攤上這事±跗猓” “怎么了礁扮?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞬沦。 經(jīng)常有香客問我太伊,道長,這世上最難降的妖魔是什么逛钻? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任僚焦,我火速辦了婚禮,結(jié)果婚禮上曙痘,老公的妹妹穿的比我還像新娘芳悲。我一直安慰自己,他們只是感情好边坤,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布名扛。 她就那樣靜靜地躺著,像睡著了一般茧痒。 火紅的嫁衣襯著肌膚如雪肮韧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天旺订,我揣著相機與錄音弄企,去河邊找鬼。 笑死区拳,一個胖子當著我的面吹牛拘领,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播樱调,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼约素,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了笆凌?” 一聲冷哼從身側(cè)響起圣猎,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菩颖,沒想到半個月后样漆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體为障,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡晦闰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年放祟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呻右。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡跪妥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出声滥,到底是詐尸還是另有隱情眉撵,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布落塑,位于F島的核電站纽疟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏憾赁。R本人自食惡果不足惜污朽,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龙考。 院中可真熱鬧蟆肆,春花似錦、人聲如沸晦款。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缓溅。三九已至蛇损,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肛宋,已是汗流浹背州藕。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酝陈,地道東北人床玻。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像沉帮,于是被迫代替她去往敵國和親锈死。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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