1 外聯接
1 左外聯接
left outer join
外聯接與內聯接的區別:
外聯接一定會提供數據行,無論改行是能否在另一個表中找出相匹配的行。
左外聯接的結果集中的NULL表示右集中沒有找到與左表相符的記錄;相同,在匹配時多條記錄符合條件,就會取出多行。
2 右外聯接
right outer join
與左外聯接類似,不同的是左外聯接from後面是左表,而右外聯接的後面則是右表。
2 自聯接
自聯接能把單一表當成具有完全相同的信息的表來進行進行查詢
select c1.name,c2.name as boss
from clown_info c1
inner join clown_info c2
on c1.boss_id=c2.di;
當一個表中有id、姓名、老闆id,返回其姓名、老闆姓名
3 聯合(union)
union根據在select中指定的列,把兩張或更多張的查詢結果合併至一個表中。也可將查詢結果用於創建表。
union默認是沒有重複的結果,若需要輸出重複的,可以使用union all運算符。
union使用限制:只能接受一個order by語句,且必須位於語句末端。位於最後一句的order by可以控制整個數據集的輸出。
4 intersect與except
intersect交集
except差集,返回只出現在第一個查詢,而不在第二個查詢中的列。
5 子查詢與聯接的比較
幾乎所有能用子查詢能辦到的事情都能用聯接實現。