記筆記,記筆記
我記得有人問過我這個問題,當時回答得不太好,我補上這個問題
首先連接有:內連接,外連接(左外,右外),全連接(交集),交叉連接(笛卡爾積)
先略兩個表
首先左連接:SELECT * FROM test1 a LEFT JOIN test2 b ON a.id = b.id;
(尷尬,join打錯了,畢竟英語沒有6級(#^_^!))
解釋下就是以左邊表id(案例裏面是test1)爲基礎和右表id對比,左表有的右表也有就也出來,右表沒有的就NULL咯,右連接和左連接相反
右連接:SELECT * FORM test1 a RIGHT JOIN test2 b ON a.id = b.id;
enh,以右邊表id爲基礎和左邊表id對比,右邊表有的左邊表也有就顯示出來,左邊表沒有的就NULL
內連接:SELECT * FROM test1 a INNER JOIN test2 b ON a.id = b.id;
解釋的話就是:兩個表的交集,就是左表和右表都有的才顯示出來
全連接:(SELECT * FROM test1) UNION (SELECT * FROM test2);
UNION是兩個交集,相當於兩張表數據和在一起(不重複),下面是會重複的UNION ALL:(SELECT * FROM test1) UNION ALL (SELECT * FROM test2);
交叉連接:SELECT * FROM test1 CROSS JOIN test2;
OVER
轉載於:https://www.cnblogs.com/yigedapangzhi/p/10290311.html