![]() |
1
55
外部联接,可以有三个选项:
This is a good visual representation of JOINs
使用左联接/为空
使用不存在
不使用
|
![]() |
2
7
内部联接与外部联接没有直径。它们有不同的用途。但是,从一个表中查找另一个表中不存在的行的常见模式是使用外部联接:
这将返回表1中的所有行和表2中的任何匹配行,这样,如果给定的表1行没有表2匹配,则返回表2列的空值。然后,通过要求不可为空的列(Table2.PrimaryKeyCol)为空,我将从表1中获取表2中不存在的所有行。使用您的示例表名,我们可以得到如下内容:
|
![]() |
3
4
如果将内部联接视为满足特定条件的两个表的行,则相反的情况是 任何一个 没有的桌子。 例如,下面将选择地址表中具有地址的所有人员:
我想,与此相反的是选择所有没有地址的人和所有没有人的地址。然而,这似乎不是您所要求的,您似乎只对其中的一个部分感兴趣:地址表中没有地址的所有人。 为此,最好是左连接:
请注意,通常有些人喜欢用不同的方式来写它,因为他们认为它更具可读性(但是在我使用大型表的经验中,它的性能比上述方式更差):
|
![]() |
4
0
我认为最好的解决办法是
上面的查询将返回设置了addrid但在地址表中没有相应记录的每个人。
OBS:
在中使用常量1
|
|
Johnny T · 基于当前值的SQL合并表[重复] 3 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 4 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 4 月前 |
![]() |
Sax · 规范化Google表格(第一步) 4 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |