回答
如果inner join
只返回兩個表中匹配的條目,則left join
將獲取第一個表中的所有條目以及第二個表中任何匹配的條目。甲right join
是的逆一個left join
(即:所有與第二個表)
因此,如果表A是
A B
1 a
2 b
3 c
和表B是
A B
1 d
2 e
然後Select * from TableA inner join TableB on TableA.A = TableB.A
返回
1 a 1 d
2 b 2 e
And Select * from TableA left join TableB on TableA.A = TableB.A
returns
1 a 1 d
2 b 2 e
3 c null null
我認爲結果不對。第一個查詢應該給1 a 1 d/2b 2 e第二個查詢應該給出:1 a 1 d/2b 2 e/3 c NULL NULL。 – 2012-07-31 12:14:51
@RolandBouman是的,他們應該:) – podiluska 2012-07-31 12:16:04
這是一樣的LEFT OUTER(外被暗示,因爲INNER JOIN需要雙邊匹配所以LEFT INNER JOIN
將毫無意義)。這同樣適用於RIGHT JOIN
和FULL JOIN
這些相當於分別相當於RIGHT OUTER JOIN
和FULL OUTER JOIN
- 1. 是什麼左邊的區別連接和MySQL中右連接
- 2. 多個LEFT連接 - 什麼是「左」表?
- 3. postgresql vs mysql左連接
- 4. PostgreSQL:左連接錯誤
- 5. 在ubuntu中連接postgresql和android的方式是什麼
- 6. 左外連接 - 有什麼區別?
- 7. 混合左右連接?爲什麼?
- 8. 爲什麼我的左連接表現爲內連接
- 9. 我的mySQL查詢有什麼問題?左連接/內連接
- 10. 使用ODBC驅動程序連接postgresql的連接字符串是什麼?
- 11. PostgreSQL的默認連接池限制是什麼?
- 12. 左連接(table1,table2)和左連接table1左連接表2有什麼區別2
- 13. 爲什麼這個左連接評估爲交叉連接?
- 14. 交叉連接,然後是左連接
- 15. AJAX中X(XML)的連接是什麼?
- 16. 提高PostgreSQL中簡單左連接的性能
- 17. 什麼是內連接?
- 18. 什麼是可信連接?
- 19. 什麼是連接池?
- 20. SQL連接還是什麼?
- 21. 什麼是RMI TCP連接
- 22. 什麼是SQL連接
- 23. 連接池什麼是removeAbandoned?
- 24. 什麼是oledb連接連接DSN的連接字符串
- 25. PostgreSQL在FROM子句中的json_array_elements - 爲什麼這不是笛卡爾連接?
- 26. 爲什麼這個左連接查詢返回左表中的所有行?
- 27. 將左連接轉換爲左連接
- 28. 什麼是Oracle中的實例連接和服務連接?
- 29. MySQL的左連接,其中連接表是空
- 30. PostgreSQL中連字符( - )的轉義序列是什麼
更多圖形說明:[Visual-Representation of SQL-Joins](http://www.codeproject.com/Articles/33052/Visual SQL連接的代表 – doctore 2012-08-02 11:12:50
所有JOIN類型的PostgreSQL都在[手冊]中解釋(http://www.postgresql.org/docs/current/interactive/queries-table-expressions.html#QUERIES-JOIN )包括例子。所以基本上'OUTER'關鍵字對於'LEFT','RIGHT'和'FULL'連接是可選的。 – 2012-07-31 11:55:47