[MYSQL -17]組合查詢

VictorLeeLk發表於2017-09-18

1、組合查詢

多數SQL查詢都只包含一個或多個表中返回資料的單條SELECT語句。MYSQL也允許執行多個查詢,並將結果作為單個查詢結果返回。這些組合查詢通常被稱為並(union)或符合查詢。

  • 有兩種情況需要使用組合查詢
    1.在單個查詢中從不同的表中返回類似結構的資料
    2.對單個表執行多個查詢,按單個查詢返回資料。
select prod_id,prod_name,prod_price
        from products
        where prod_price<=5
        order by prod_price DESC;

select prod_id,prod_name,prod_price
    from products
    where vend_id in(1001,1002);

select prod_id,prod_name,prod_price
        from products
        where prod_price<=5 union
        select prod_id,prod_name,prod_price
    from products
    where vend_id in(1001,1002);
  • UNION規則
    1.兩條或多條SELECT語句組成
    2.每個查詢必須包含相同的列、表示式或聚集函式
    3.列資料型別必須相容:型別不必完全相同。

包含重複的行,MYSQL預設自動取消重複的行,可以使用UNION ALL來輸出所有行,包括重複的行。

2、對組合查詢結果排序

select prod_id,prod_name,prod_price
        from products
        where prod_price<=5
        order by prod_price DESC;

select prod_id,prod_name,prod_price
    from products
    where vend_id in(1001,1002);

select prod_id,prod_name,prod_price
        from products
        where prod_price<=5 union
        select prod_id,prod_name,prod_price
    from products
    where vend_id in(1001,1002)
    ORDER BY vend_id,prod_price;

相關文章