1、[ inner ] join產生的結果集是a和b的交集。
2、full [ outer ] join產生a和b的並集。但是需要注意的是,對於沒有匹配的記錄,則會以null做為值。可以使用ifnull判斷
3、select * from tableafull outer jointableb on tablea.name = tableb.namewhere tablea.id is null or tableb.id is null
產生a表和b表沒有交集的資料集。
4、left [ outer ] join產生表a的完全集,而b表中匹配的則有值,沒有匹配的則以null值取代。
5、right [ outer ] join產生表b的完全集,而a表中匹配的則有值,沒有匹配的則以null值取代。
6、union操作符用於合併兩個或多個select語句的結果集。 請注意,union內部的select語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條select語句中的列的順序必須相同。 union只選取記錄,而union all會列出所有記錄。
7、union前面表的資料全部列出,後面表的資料選取不同的列出,union all兩張表的資料分別全部列出。
8、交差集」cross join,這種join沒有辦法用文式圖表示,因為其就是把錶a和表b的資料進行乙個n*m的組合,即笛卡爾積。表示式如下:select * from tablea cross join tableb,這個笛卡爾乘積會產生4 x 4 = 16條記錄,一般來說,我們很少用到這個語法。但是我們得小心,如果不是使用巢狀的select語句,一般系統都會產生笛卡爾乘積然再做過濾。這是對於性 能來說是非常危險的,尤其是表很大的時候。
左右內外連線
下面是我學習的對左右內外連線的理解 在我們的日常生活中每當要查詢的時候就會考慮到要用什麼的方法去連線 連線方法有四種,分別是內連線 innerjoin 左連線 left join 右連線 right join 內連線 innerjoin 外連線 outer join 首先我們來看看內連線 inner...
Mysql內外連線
1.自然連線 natural join 自然連線將表中具有相同名稱的列自動進行匹配,自然連線不必指定任何同等連線條件也不能認為指定哪些列需要被匹配,自然連線得到的結果表中,兩表中名稱相同的列只出現一次。select from employee natural join department 2.內連...
SQL內外連線詳解
有兩個表a和表b。表a結構如下 aid int 標識種子,主鍵,自增id aname varchar 資料情況,即用select from a出來的記錄情況如下圖1所示 圖1 a表資料 表b結構如下 bid int 標識種子,主鍵,自增id bnameid int 資料情況,即用select fro...