|
|
1
2
你的问题:但是第二个连接子句的意义是什么? 有效地过滤行…如果您真的需要,可以将on语句的后半部分移到where子句中,只会真正影响可读性。对于这个3表的例子,gbn的答案看起来不错,但是要扩展它……有时候这样的重写是不可能的。我见过两个不同的系统(一个oracle 8i和一个SQL server 2000)将它们的数据库连接在一起的情况。一个由3部分组成的键被确定为使记录在两个系统中都是唯一的,但是3部分键的每个组件都保存在不同的表中……最终结果有一些这样的连接。 功能上…我不确定是否真的有区别。除非我完全离开,否则可读性似乎是最大的区别。 你的第二个问题:当使用外部连接子句时会有什么影响? 您可能会得到一堆空值(等待如何设置外部连接),而内部连接会丢弃它们。但是要小心…内部连接是关联的…正如gbn所说:外部连接不同,顺序也很重要 |
|
|
2
3
这仅仅意味着你对tablea和tablec的交集有一个额外的限制。
|
|
|
3
1
用户可能希望进一步筛选包含在联接集中的行集。。。 |
|
|
4
0
第二个连接的目的是根据TableC的内容进一步限制结果集。第一个连接只提供TA和TB中存在的记录。第二个连接只提供同样存在于TC中的第一个连接的结果。 |