多表查詢之合并結(jié)果集
多表查詢有以下三個(gè)分類:
首先我們先來了解什么是合并結(jié)果集,合并結(jié)果集指的是將多個(gè)查詢結(jié)果集合并輸出。關(guān)鍵詞是:UNION[ALL],合并結(jié)果集也有以下要求:
- 要求被合并的結(jié)果集中,列的類型和列數(shù)相同。
(1)下面我們創(chuàng)建兩個(gè)表,分別是one表和two表,然后分別向這兩個(gè)表中插入記錄,如圖1-1所示:
圖1-1 one表與two表信息
(2)將one表的結(jié)果集與two表的結(jié)果集合并,如圖1-2所示:
圖1-2 合并結(jié)果集
圖1-2中,合并的結(jié)果是將one表的所有記錄與two表的所有記錄合并在一起,如圖1-3所示:
圖1-3 合并過程
需要注意的是,合并的并不是表,而是結(jié)果集,另外合并之前,查詢的兩個(gè)結(jié)果集的列名稱不需要相同,只要滿足列的個(gè)數(shù)和類型一樣就可以;當(dāng)然也可以合并兩個(gè)以上的結(jié)果集。下面我們合并emp表與dept表的查詢結(jié)果集,如圖1-4所示:
圖1-4 合并結(jié)果集
雖然emp表的列的個(gè)數(shù)與dept表列的個(gè)數(shù)不相同,但是結(jié)果集select deptno from emp中列的個(gè)數(shù)與類型與結(jié)果集select deptno from dept中的列的個(gè)數(shù)與類型相同。
合并關(guān)鍵詞:UNION [ALL]中的all可以省略,如圖1-5所示:
圖1-5 合并結(jié)果集
圖1-5與圖1-2相比,查詢語句的區(qū)別就是圖1-5中的查詢語句少了all關(guān)鍵字,得到的查詢結(jié)果不一樣,圖1-5中合并的結(jié)果將重復(fù)的行去掉了。
- UNION,去除重復(fù)行;
- UNION ALL,不去除重復(fù)行。
本文版權(quán)歸傳智播客人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客人工智能+Python學(xué)院