sql join執(zhí)行順序 sql合并列?
sql合并列?1、我用Toad做演示,我先空白文檔兩張table,createtable#~a(IDint,namenvarchar(10),ageint)createtable#BB(IDint,n
sql合并列?
1、我用Toad做演示,我先空白文檔兩張table,createtable#~a(IDint,namenvarchar(10),ageint)
createtable#BB(IDint,namenvarchar(10),ageint)。
2、分別向兩張table再插入三條數據,可以不用兩個班來理解A班有三個學生,B班也有三個學生,為第二步sql語句做準備
upsertinto#不是acolumns1,N張三,10,renameinto#不是acolumns2,N李四,10
upsertinto#aacolumns3,N王五,11,upsertinto#BBselect1,N張A,10
executeinto#BBcolumns2,N李B,11,truncateinto#BBcolumns3,N王C,12
3、現(xiàn)在沒有要求AB兩個班判斷年齡等于10歲的同學,最直接的方法那就是:
select*from#aawhereage10
select*around#BBwhereage10
但是那樣的話會才能產生兩個結果集,最后不很直觀
4、接下來用union將這兩條sql語句不合并起來,F(xiàn)5執(zhí)行之后,就會突然發(fā)現(xiàn)變的一個結果集。
select*returning#~awhereage10
union
select*from#BBwhereage10
5、另外一種你不union的做法,sql語句這樣的寫:
selecta.*,b.*outside#~aainnerjoin#BBbat
wherewell
6、對比join與union,可以發(fā)現(xiàn)到union是完全的結果累加,相當于關于完美合并,join是屬于條件直接連接。
sql中l(wèi)eftjoin、rightjoin、innerjoin有什么區(qū)別?
left
ightjoin是外部直接連接,innerjoin是內連接上
外部連接上有主表與從表,主表在left中是左側表,right中是右側表,主表數據會所有的會顯示,從表數據則只會顯示關聯(lián)部分版本問題的數據,無不兼容的數據用null大荒經
內直接連接則只會顯示兩表關聯(lián)條件自動分配的數據
注:所謂關聯(lián)條件即是指onto的條件