第十章 外聯接,自聯接與聯合

 

第十章   外聯接,自聯接與聯合
一.外聯接
           左聯接:LEFT OUTER JOIN;匹配左表中的每一行及由表中符合條件的行。
/*左外聯接*/
SELECT g.girl, t.toy FROM girls g LEFT OUTER JOIN toys t ON g.toy_id = t.toy_id;
說明:內聯接與外聯接的區別在於,外聯接一定會提供數據行,無論該行能否在另一個表中找到相匹配的行。
/*右外聯接*/
SELECT g.girl, t.toy FROM toys t RIGHT OUTER JOIN girls g ON g.toy_id = t.toy_id;
說明:右外聯接也是根據左表來評估右表的。
二.自聯接
        /*自聯接*/
SELECT c1.name, c2.name AS boss FROM clown_info c1 INNER JOIN clown_info c2 ON c1.boss_id = c2.id;
自聯接能把單一表當成兩張具有完全相同信息的表來進行查詢。
三.聯合
/*聯合*/
SELECT title FROM job_current UNION SELECT title FROM job_desired UNION SELECT title FROM job_listings;
說明:
a.       每個SELECT語句中列的數量必須一致。不可以由第一條語句選取兩列,由其他語句卻只選取一列。
b.      每個SELECT語句包含的表達式與統計函數也必須相同。
c.       SELECT語句的順序不重要,不會改表結果。
d.      SQL默認會清除聯合結果中的重複值。
e.      列的類型必須相同或者可以相互轉換。
f.        如果處於某些原因而需要看到重複數據,可以使用UNION ALL運算符。這個運算符返回每個相符的記錄,而不只是沒有重複的記錄。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章