步驟
成都創(chuàng)新互聯(lián)主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等多方位專業(yè)化運(yùn)作于一體。
兩個(gè)集合的結(jié)構(gòu)要一致,對應(yīng)的字段數(shù),字段類型
將兩個(gè)集合用 UNION ALL 關(guān)鍵字合并,這里的結(jié)果是有重復(fù)的所有集
將上面的所有集 GROUP BY id
最后 HAVING COUNT(id)=1,等于1的意思是只出現(xiàn)了一次,所以這個(gè)是差集,如果等于2,那么就是交集
代碼演示
差集
-- 下面的sql有明顯的問題,不過這個(gè)只是一個(gè)示意,
-- 從一個(gè)表中查詢不需要用到交集和差集,條件可以合并在一起直接查詢出來的.能明白意思就好
-- 下面的sql的意思是找到所有非技術(shù)部的員工的id,code和name
SELECT a.* FROM(
SELECT id,code,name FROM test_emp
UNION ALL
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a GROUP BY a.id HAVING COUNT(a.id)=
交集
-- 下面的sql的意思是找到所有技術(shù)部年齡大于25的員工
SELECT a.* FROM(
SELECT id,code,name FROM test_emp WHERE age25
UNION ALL
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a GROUP BY a.id HAVING COUNT(a.id)=2
并集
-- 下面的sql的意思是找到所有技術(shù)部的員工和年齡大于30的員工
-- union可以自動(dòng)去除重復(fù)的內(nèi)容,得到不重復(fù)的結(jié)果集
SELECT a.* FROM(
SELECT id,code,name FROM test_emp WHERE age25
UNION
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a
select * from table1 t where t.a10 or t.b20
and id not in (select id from table1 m where m.a20 and m.b20)
select A.id,A.aaa,A.bbb,B.ccc,B.ddd
from A left join B
on A.id=B.id
union
select B.id,A.aaa,A.bbb,B.ccc,B.ddd
from A right join B
on A.id=B.id