getting joins
select * from a innner join b on a.id = b.id
內(nèi)聯(lián)合只生成同事匹配a和b的記錄集,即a和b的子集
select * from a full outer join b on a.id = b.id
全外聯(lián)合生成表a和b的記錄全集,包括兩邊都匹配的記錄,如果有一邊沒(méi)有匹配的,缺失的這一邊為null,即a和b的并集
select * from a left outer join b on a.id = b.id
左外聯(lián)合生成表a的所有記錄,包括在表b里匹配的記錄,如果沒(méi)有匹配的,右邊將是null
select * from a left join a on a.id = b.id where b.id is null
為了生成只在表a里而不再表b中的記錄集,我們用同樣的左外聯(lián)合,然后用where 語(yǔ)句 排除 我們不想要的記錄
select * from a full outer join b on a.id =b.id where a.id is null or b.id is null
為了生成對(duì)于表a和表b唯一的記錄集,我們 用同樣的全外聯(lián)合,然后用where 語(yǔ)句排除兩邊都不想要的記錄。
select * from a cross join b
其實(shí)就是a的每條數(shù)據(jù)和b的每條數(shù)據(jù)進(jìn)行重新組合的最大集合。
即 a的數(shù)量*b的數(shù)量
總結(jié)
以上是生活随笔為你收集整理的getting joins的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 模块ntdll中出现异常eaccessv
- 下一篇: 【转】内核代码摘记