在我看来,您可以使用NOT EXISTS,NOT IN或LEFT JOIN WHERE IS NULL在SQL查询中执行相同的操作。例如:
SELECT a FROM table1 WHERE a NOT IN (SELECT a FROM table2)
SELECT a FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.a = table2.a)
SELECT a FROM table1 LEFT JOIN table2 ON table1.a = table2.a WHERE table1.a IS NULL
我不确定所有语法是否正确,但这是我所见过的常规技术。我为什么选择一个使用另一个?性能会有所不同吗?哪一个是最快/最有效的?(如果取决于实现,我什么时候会使用每个?)
NOT IN与NOT EXISTS与LEFT JOIN / IS NULL:SQL Server
NOT IN与NOT EXISTS与LEFT JOIN / IS NULL:PostgreSQL
NOT IN与NOT EXISTS与LEFT JOIN / IS NULL:Oracle
NOT IN与NOT EXISTS与LEFT JOIN / IS NULL:MySQL
简而言之:
NOT IN
有点不同:如果NULL
列表中只有一个,它将永远不会匹配。
在中MySQL
,NOT EXISTS
效率较低
在中SQL Server
,LEFT JOIN / IS NULL
效率较低
在中PostgreSQL
,NOT IN
效率较低
在中Oracle
,这三种方法都相同。
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
我阅读了kstream.leftjoin,但没有找到确切的区别。
问题内容: 和处理特殊字符之间有什么区别? 被空间接受。 在的情况下,被接受为。 问题答案: 是要从URI(Spring称为URI模板)中获取一些占位符 也是要从URI中获取参数—请参见Spring Reference第16.3.3.3章,使用@RequestParam将请求参数绑定到方法参数 如果该网址在2013年12月5日获得了用户1234的发票,则控制器方法如下所示: 同样,请求参数可以是可
问题内容: 有什么不同?您什么时候使用什么? 问题答案: 直接来自Django模型字段参考: 如果为,则Django将在数据库中存储空值。默认值为。 请注意,空字符串值将始终存储为空字符串,而不是。仅用于非字符串字段,例如整数,布尔值和日期。对于这两种类型的字段,如果您希望允许使用表单中的空值,则还需要进行设置,因为该参数仅影响数据库的存储(请参阅参考资料)。 除非有充分的理由,否则请避免在基于字
问题内容: 为什么在JavaScript中被视为? 正在检查 与…相同 ? 并且: 和之间有什么区别? 问题答案: (name is undefined) You: What is name? () JavaScript:* ?什么啊 我不知道你在说什么您以前从未提到过。您是否在(客户端)看到其他脚本语言? You: What is name? JavaScript: I don’t know.。
问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中