表 1(ID,名称)
表2(ID,名称)
询问:
SELECT name
FROM table2
-- that are not in table1 already
原文由 z-boss 发布,翻译遵循 CC BY-SA 4.0 许可协议
表 1(ID,名称)
表2(ID,名称)
询问:
SELECT name
FROM table2
-- that are not in table1 already
原文由 z-boss 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
800 阅读
问:这里发生了什么?
答:从概念上讲,我们从
table1
中选择所有行,并且对于每一行,我们尝试在table2
中找到与name
列具有相同值的行。如果没有这样的行,我们只需将该行的结果中的table2
部分留空。然后,我们通过仅选择结果中不存在匹配行的那些行来限制我们的选择。最后,我们忽略结果中的所有字段,除了name
列(我们确定存在的字段,来自table1
)。虽然它可能不是在所有情况下都可能是性能最高的方法,但它应该适用于几乎所有尝试实现 ANSI 92 SQL 的数据库引擎