什麼是組合查詢
sql 通過執行多個查詢(多條select 語句),並將結果作為乙個查詢結果集返回。這些組合查詢通常稱為並(union)或復合查詢(compound query)。
什麼時候使用組合查詢
一般以下兩種情況需要使用組合查詢:
多數情況下,組合相同表的兩個查詢所完成的工作與具有多個where子句條件的乙個查詢所完成的工作相同。換句話說,任何具有多個where 子句的select 語句都可以作為乙個組合查詢
可用union 操作符來組合數條sql 查詢。利用union,可給出多條select 語句,將它們的結果組合成乙個結果集。使用union示例:
1select
cust_name, cust_contact, cust_email
2from
customers
3where cust_state in ('
il','
in','mi'
)4union
5select
cust_name, cust_contact, cust_email
6from
customers
7where cust_name =
'fun4all
';
union規則
包含或取消重複的行
預設情況下union 從查詢結果集中自動去除了重複的行,,如果想返回所有的匹配行,可使用union all 替換union即可。使用union all:
selectcust_name, cust_contact, cust_email
from
customers
where cust_state in ('
il','
in','mi'
)union
allselect
cust_name, cust_contact, cust_email
from
customers
where cust_name =
'fun4all
';
union 幾乎總是完成與多個where 條件相同 的工作。union all 為union 的一種形式,它完成where 子句完成不了的工作。如果確實需要每個條件的匹配行全部出現(包括重複行), 就必須使用union all,而不是where。使用union 組合查詢時,只能使用一條order by 子句,它必須位於最後一條select 語句之後
union 在需要組合多個表的資料時很有用,即使是有不匹配列名的表,在這種情況下,可以將union 與別名組合,檢索乙個結果集。
MySQL 17組合查詢 必知必會
利用union操作符將多條select語句組合成乙個結果集。一般sql查詢只包含從乙個 多個表中返回的單條select語句,mysql允許多個查詢並將結果作為單個查詢結果集返回 使用union操作符來組合多條sql查詢 需要 5的所有物品的乙個列表,還想要包括 商1001和1002生產的所有物品 不...
SQL必知必會 筆記 子查詢 IN
查詢 query 任何sql語句都是查詢。但此術語一般指select 語句。子查詢 subquery 即巢狀在其他查詢中的查詢,也可以說,巢狀在其他select語句中的select語句。舉個例子,我們想知道購買tnt2產品的客戶的id,但是產品id和客戶id不在同一張表上,兩張表的訂單號碼這一列是相...
《sql必知必會》筆記
資料庫 儲存有組織的資料的容器 通常是乙個檔案或一組檔案 注意誤用混淆 資料庫軟體被稱為dbms,資料庫是通過dbms建立和操縱的容器 模式 關於資料庫和表的布局及特性的資訊。主鍵 一列或一組列,其值能夠唯一標識表中的每一行。多條sql語句必須以 分隔。sql語句不區分大小寫,select和sele...