Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在这种情况下,“;“左外连接”;“比”更好;不在「;查询,在哪种情况下为“查询”;不在「;或;“不存在”;或;“在”中;?_Sql_Sql Server 2008 - Fatal编程技术网

Sql 在这种情况下,“;“左外连接”;“比”更好;不在「;查询,在哪种情况下为“查询”;不在「;或;“不存在”;或;“在”中;?

Sql 在这种情况下,“;“左外连接”;“比”更好;不在「;查询,在哪种情况下为“查询”;不在「;或;“不存在”;或;“在”中;?,sql,sql-server-2008,Sql,Sql Server 2008,大家好,有人能告诉我应该在哪里使用外部联接,以及应该在哪里使用NOT IN或NOT EXIST查询吗 在这种情况下,哪一个更好?当我们需要通过连接从不同的表中获取数据时,我们可以使用连接 我们可以在where子句中使用IN、NOT IN或NOT exists根据我们的要求过滤数据 有关更多信息,请参阅这些链接 一般来说,如果存在或不存在适用,请使用它。它们是半连接的。当找到第一个匹配行或不匹配行时,它立即返回结果,并丢弃刚刚找到的内容 仅仅通过语法来判断哪个更好是没有意义的。SQL Serv

大家好,有人能告诉我应该在哪里使用外部联接,以及应该在哪里使用NOT IN或NOT EXIST查询吗


在这种情况下,哪一个更好?

当我们需要通过连接从不同的表中获取数据时,我们可以使用连接

我们可以在where子句中使用IN、NOT IN或NOT exists根据我们的要求过滤数据

有关更多信息,请参阅这些链接


一般来说,如果存在或不存在适用,请使用它。它们是半连接的。当找到第一个匹配行或不匹配行时,它立即返回结果,并丢弃刚刚找到的内容


仅仅通过语法来判断哪个更好是没有意义的。SQL Server数据引擎优化器将决定实际执行计划。完全不同的查询可能会生成完全相同的执行计划。如果您不确定哪个更好,请检查您的实际执行计划。

一般来说,SQL server中不存在比其他查询更快的查询。但是,对于左连接,您可能无法执行等效的查询。当需要两个表中的某些数据时,也会使用左联接。例如,您有一个用户表和一个地址表,但并非所有用户都有地址。因此,您可以使用左连接来获取您确实拥有的地址,而对于不拥有的地址,则使用空值。如果不存在或不在,则无法执行此操作,因此左连接是您唯一的选择

首先,如果你尝试了什么,就把它贴在这里。这样,你就可以很好地关注你的问题,而不是问什么是最好的或不是最好的。