对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams解释了SQL的Join。我觉得清楚易懂,转过来。
假设我们有两张表,Table A是左边的表,Table B是右边的表。
其各有四条记录,其中有两条记录是相同的,如下所示:
下面让我们来看看不同的Join会产生什么样的结果。
1 | SELECT * FROM TableA INNER JOIN TableB |
2 | ON TableA. name = TableB. name |
Inner join 产生的结果集中,是A和B的交集。 | |
01 | SELECT * FROM TableA FULL OUTER JOIN TableB |
02 | ON TableA. name = TableB. name |
<td class="content" style="margin: 0px !important; padding: 0px 0px 0px 0.5em !important; border-width: 0px 0px 0px 3px !important; border-left-style: solid !important;%
|