轉載自:http://blog.csdn.net/xukun5137/article/details/51722960
在學習mybatis,發現數據庫這塊學的不好,又找資料學習一下。發現這篇講內連接外連接的還不錯,就轉載過來了,順便添加點自己學到的內容(SQL查詢藝術一書)。
首先建立兩張表A、B。
表A:
Aid:int類型,無符號遞增,主鍵
name:varchar類型
表B:
Bid:int類型,無符號遞增,主鍵
name:varchar類型
age:int類型
- 內連接(INNER JOIN)
- JOIN默認爲INNER JOIN
利用內連接可獲取兩表的公共部分的記錄。會顯示兩張表匹配的所有列信息
select * from A JOIN B ON A.name=B.name
- 外連接
外連接分爲兩種,左連接(Left JOIN)和右連接(Right JOIN)
- 左連接(Left JOIN)
- 左外連接=內連接+左邊表中失配的元組
select * from A Left JOIN B ON A.name=B.name
- 右連接(Right JOIN)
- 右外連接=內連接+右邊表中失配的元組
select * from A Right JOIN B ON A.Aid=B.Bid
全外連接(FULL OUTER JOIN)
全外連接=內連接+左邊表中失配的元組+右邊表中失配的元組
- 交叉連接(CROSS JOIN)
有兩種,顯式的和隱式的,不帶ON子句,返回的是兩表的乘積,也叫笛卡爾積。
- 顯式:
select A.*,B.* from A CROSS JOIN B ON A.name=B.name
- 隱式:
select A.*,B.* from A ,B WHERE A.name=B.name