Osh*_*Nad 7 sql t-sql sql-server sql-in
在我们可以使用JOIN的地方使用SQL语句中的"IN"关键字是否存在任何性能问题?
SELECT xxx
FROM xxx
WHERE ID IN (SELECT Id FROM xxx)
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 10
不,可以使用.
您可以在所有RDBMS中使用IN,EXISTS编写上面的查询,有些还支持INTERSECT.
从语义上讲,这是一个半连接,"给我表A中的行,其中我在tableB中至少有一个匹配".INNER JOIN是"给我所有匹配的行"
因此,如果TableA有3行,TableB有5行匹配:
这就是我和其他SQL类型推送IN和EXISTS的原因:JOIN错误,需要DISTINCT并且速度会慢.
EXISTS支持多列JOIN,IN不在SQL Server中(在其他情况下也是如此).
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |