tsql - 这些连接有什么区别?
问题描述
有什么区别
SELECT COUNT(*)
FROM TOOL T
LEFT OUTER JOIN PREVENT_USE P ON T.ID = P.TOOL_ID
WHERE
P.ID IS NULL
和
SELECT COUNT(*)
FROM TOOL T
LEFT OUTER JOIN PREVENT_USE P ON T.ID = P.TOOL_ID AND P.ID IS NULL
?
解决方案
底部查询相当于
SELECT COUNT(*)
FROM TOOL T
因为它不限制结果集,而是为连接的右侧部分生成一个包含大量空字段的连接表。
第一个查询是左反连接。
推荐阅读
- debian - crontab中的rsync不执行
- spring - 在 Spring Boot 中使用过滤器时响应需要很长时间
- python - 更改现有 matplotlib 图的颜色图
- c - %lo(source)($6) 和 .frame 在汇编代码中是什么意思?
- kotlin - 带有kotlin的黄瓜参数类型
- graphql - 如何使我的 hasura 动作准备好用于我的 ci / cd 测试?
- c - 如何知道 Linux 中看门狗重启的原因?
- python - 为什么当我输入一个值时程序会退出?
- vue.js - 当我使用 Axios 获取数据时,我的 JS 代码不起作用
- python - 有没有办法可以在 python 中使用多线程或多处理来连接到 200 个不同的服务器并从它们下载数据