1. 程式人生 > >mysql聯合查詢(UNION)

mysql聯合查詢(UNION)

mysql聯合查詢(UNION)

下面我就直接po截圖和程式碼

#聯合查詢
/*
union 聯合 合併:將多條查詢語句的結果合併成一個結果

語法:
查詢語句1
union
查詢語句2
union
...


應用場景:
要查詢的結果來自於多個表,且多個表沒有直接的連線關係,但查詢的資訊一致時

特點:★
1、要求多條查詢語句的查詢列數是一致的!
2、要求多條查詢語句的查詢的每一列的型別和順序最好一致
3、union關鍵字預設去重,如果使用union all 可以包含重複項

*/
USE myemployees;

#引入的案例:查詢部門編號>90或郵箱包含a的員工資訊
#
SELECT * FROM employees WHERE department_id > 90 OR email LIKE '%a%';
#使用UNION聯合查詢
SELECT * FROM employees WHERE department_id > 90
UNION
SELECT * FROM employees WHERE email LIKE '%a%';

#
USE test;
#案例:查詢中國使用者中女性的資訊以及外國使用者中女性的使用者資訊
SELECT c.`c_id`, c.`c_name`, c.`c_sex` FROM china c WHERE c_sex = '女'
UNION
SELECT f.`f_id`, f.`f_name`, f.`f_sex` FROM foreignUser f WHERE f_sex = 'female';


#china表和foreignUser表中都有66號韓梅梅(UNION會去重)
SELECT c.`c_id`, c.`c_name` FROM china c WHERE c_sex = '女'
UNION
SELECT f.`f_id`, f.`f_name` FROM foreignUser f WHERE f_sex = 'female';

#china表和foreignUser表中都有66號韓梅梅(UNION ALL 不會去重)
SELECT c.`c_id`, c.`c_name` FROM china c WHERE c_sex = '女'
UNION ALL
SELECT f.`f_id`, f.`f_name` FROM foreignUser f WHERE f_sex = 'female';

使用UNION

使用UNION ALL

#聯合查詢
/*
union 聯合 合併:將多條查詢語句的結果合併成一個結果

語法:
查詢語句1
union
查詢語句2
union
...


應用場景:
要查詢的結果來自於多個表,且多個表沒有直接的連線關係,但查詢的資訊一致時

特點:★
1、要求多條查詢語句的查詢列數是一致的!
2、要求多條查詢語句的查詢的每一列的型別和順序最好一致
3、union關鍵字預設去重,如果使用union all 可以包含重複項

*/