MySQL組合查詢

2021-08-10 03:36:58 字數 1721 閱讀 3677

組合查詢: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從查詢結果集中自動的去除了重複的行,並非所有的引擎支援...