MySQL數(shù)據(jù)庫:第十一章:合并查詢(聯(lián)合查詢)

回退至Mysql數(shù)據(jù)庫理論與實戰(zhàn)

#進(jìn)階10:合并查詢(聯(lián)合查詢)
引入:一個結(jié)果集的查詢的數(shù)據(jù)來自于多張表。但多張表之間沒有任何關(guān)聯(lián)關(guān)系。

語法:
select 查詢列表 from 表1 union
select 查詢列表 from 表2 union

select 查詢列表 from 表n
特點:
①要求實現(xiàn)union的多條查詢語句的查詢列數(shù)必須一致,列名無要求,列的意義無要求,但建議一致!
②union默認(rèn)實現(xiàn)的是去重查詢。如果不想去重,則使用union all

#案例1:查詢所有國家的用戶信息
SELECT id 編號,cname 姓名 ,cgender 性別 FROM chinese UNION
SELECT uid,uname,uname FROM usa;
#案例2:
SELECT 1,100,'張三' UNION ALL
SELECT 1,100,'張三' UNION ALL
SELECT 1,100,'張三' UNION ALL
SELECT 1,100,'張三' UNION ALL
SELECT 1,100,'張三'
#一張表的聯(lián)合查詢
#案例3:查詢姓名包含字符a的或工資>10000或部門編號<120或獎金不為null
#使用or
SELECT *
FROM employees
WHERE last_name LIKE  '%a%'
OR salary>10000
OR department_id<120
OR commission_pct IS NOT NULL;
#聯(lián)合查詢
SELECT * FROM employees WHERE last_name LIKE  '%a%' UNION
SELECT * FROM employees WHERE salary > 10000 UNION
SELECT * FROM employees WHERE department_id<120 UNION
SELECT * FROM employees WHERE commission_pct IS NOT NULL;