MySQL數(shù)據(jù)庫(kù):第十一章:合并查詢(聯(lián)合查詢)
回退至Mysql數(shù)據(jù)庫(kù)理論與實(shí)戰(zhàn)
#進(jìn)階10:合并查詢(聯(lián)合查詢)
引入:一個(gè)結(jié)果集的查詢的數(shù)據(jù)來(lái)自于多張表。但多張表之間沒(méi)有任何關(guān)聯(lián)關(guān)系。
語(yǔ)法:
select 查詢列表 from 表1 union
select 查詢列表 from 表2 union
…
select 查詢列表 from 表n
特點(diǎn):
①要求實(shí)現(xiàn)union的多條查詢語(yǔ)句的查詢列數(shù)必須一致,列名無(wú)要求,列的意義無(wú)要求,但建議一致!
②union默認(rèn)實(shí)現(xiàn)的是去重查詢。如果不想去重,則使用union all
#案例1:查詢所有國(guó)家的用戶信息
SELECT id 編號(hào),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或部門編號(hào)<120或獎(jiǎng)金不為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;