您可以解释一下我应该在哪里使用外连接以及我应该在哪里使用NOT IN或NOT EXIST查询。
在哪种情况下哪一个更好?
答案 0 :(得分:1)
一般来说,如果适用EXISTS或NOT EXISTS,请使用它。他们是半连接。它会在找到第一个匹配或不匹配的行时立即返回结果,然后它会丢弃刚找到的内容。
通过语法说哪个更好是没有意义的。 SQL Server数据引擎优化器将决定实际的执行计划。相同的查询可能会生成完全相同的执行计划。如果您不确定哪个更好,请检查您的实际执行计划。
答案 1 :(得分:0)
当我们需要通过连接来获取来自不同表的数据时,我们可以使用连接。
我们可以在where子句中使用 IN,NOT IN或NOT exists 来根据我们的要求过滤我们的数据。
请参阅这些链接以获取更多信息..
http://www.w3schools.com/sql/sql_join.asp
答案 2 :(得分:0)
对于等效查询,SQL服务器通常不存在比其他服务器更快。但是,使用左连接时,您可能无法执行等效查询。当您需要来自两个表的一些数据时,也会使用左连接。例如,您有一个User表和一个Address表,但并非所有用户都有地址。因此,您使用左连接来获取您拥有的地址,并使用空值来获取您没有的地址。你不能在不存在或不存在的情况下这样做,所以左边的连接是你唯一的选择。