組合查詢:mysql允許執行多個查詢(多條select語句),並將結果作為單個查詢結果集返回。
一、建立組合查詢
可用union操作符來組合數條sql查詢。利用union,可給出多條select語句,將它們的結果組合成單個結果集。下面是兩個單個查詢例子:
select vend_id, prod_id, prod_price
from products
where prod_price <= 5;
select vend_id, prod_id, prod_price
from products
where vend_id in (1001, 1002);
下面將兩條查詢語句組合為一條:
select vend_id, prod_id, prod_price
from products
where prod_price <= 5
union
select vend_id, prod_id, prod_price
from products
where vend_id in (1001, 1002);
這條語句就是由前面兩條語句通過union關鍵字組合在一起,並把輸出組合成單個查詢結果集。
二、union規則
1.union必須由兩條或兩條以上的select語句組成,語句之間用union關鍵字分隔;
2.union中的每個查詢必須包含相同的列、表示式或聚集函式(不過各列不需要以相同的次序列出);
3.列資料型別必須相容:型別不必完全相同,但必須是dbms可以隱含地轉換的型別(例如,不同的數值型別或不同的日期型別)。
三、包含或取消重複的行
union從查詢結果集中自動去除了重複的行。這是union的預設行為,但是如果需要可以改變。如果想要返回所有匹配的行,可使用union all來替代union。請看下面例子:
select vend_id, prod_id, prod_price
from products
where prod_price <= 5
union
allselect vend_id, prod_id, prod_price
from products
where vend_id in (1001, 1002);
可以對比前面的例子,發現多出了一行重複的內容。
四、多組合結果排序
在用union組合查詢時,只能使用一條order by子句,且必須出現在最後一條select語句之後。請看下面例子:
select vend_id, prod_id, prod_price
from products
where prod_price <= 5
union
allselect vend_id, prod_id, prod_price
from products
where vend_id in (1001, 1002)
order
by vend_id, prod_price;
mysql 組合查詢 mysql組合查詢
使用union 多數sql查詢都只包含乙個或多個表中返回資料的單條select語句。mysql也允許執行多個查詢 多條select語句 並將結果作為單個查詢結果集返回。這些組合查詢通常稱為並 union 有兩種情況需要使用組合查詢 在單個表查詢中從不同的表返回類似結構的資料 對單個表執行多個查詢,按...
MySQL組合查詢
多數sql查詢都只包含從乙個或多個表中返回資料的單條select語句。mysql也允許執行多個查詢 多條select語句 並將結果作為單個查詢結果集返回。這些組合查詢通常稱為並 union 或復合查詢 compound query 有兩種基本情況,其中需要使用組合查詢 小於等於5的所有物品的乙個列表...
MySQl組合查詢
union的規則 union必須由兩條以上的select 語句組成買漁具之間用關鍵字union分割,union中個每個查詢必須包含相同的列,表示式或者聚集函式,列資料型別必須相容,型別不必完全相同。但必須是dbms可以隱含的轉換的型別。union從查詢結果集中自動的去除了重複的行,並非所有的引擎支援...