多表查詢(下) 一. 聯合查詢 聯合查詢:將多次查詢結果合併,形成新的查詢結果集 select {欄位列表} from {表A} ... union [all] select {欄位列表} from {表B} ...; union all 會顯示重覆的部分,union 會去重,重覆的部分只顯示一次。 ...
多表查詢(下)
一. 聯合查詢
聯合查詢:將多次查詢結果合併,形成新的查詢結果集
select {欄位列表} from {表A} ...
union [all]
select {欄位列表} from {表B} ...;
-
union all 會顯示重覆的部分,union 會去重,重覆的部分只顯示一次。
-
聯合查詢的多張表的列數必須保持一致,欄位類型也要保持一致。
二. 子查詢
概念:在SQL語句中嵌套使用select語句,稱為嵌套查詢,也稱為子查詢。
- 語法舉例:
select * from tb1 where column1 = (select column1 from tb2);
- 子查詢外部的語句可以是 insert/update/delete/select 的任何一個。
- 根據子查詢結果不同,可分類為:
- 標量子查詢:子查詢的結果為單個值
- 列子查詢:子查詢結果為一列
- 行子查詢:子查詢結果為一行
- 表子查詢:子查詢結果為多行多列
- 前一條中的返回結果指的是語法後面括弧內的返回結果。
- 根據子查詢位置,可分類為:where之後、from之後、select之後。
1. 標量子查詢
標量子查詢:返回結果是單個值(數字、字元串、日期等)。
- 常用操作符:= / <> / >= / < / <=
2. 列子查詢
列子查詢:子查詢結果為一列(可以是多行)
- 常用操作符: in / not in / any / some / all
3. 行子查詢
行子查詢:子查詢結果為一行(可以是多列)
- 常用操作符:**= / <> / in / not in **
4. 表子查詢
表子查詢:子查詢結果為多行多列
- 常用操作符:in