回答
如果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