sql - 概念问题:连接键上的非空过滤器左连接是否总是等于内连接?
问题描述
这是一个概念问题。所以我没有任何实际的代码。但这很容易遵循。
让我们留下来自连接 A 和 B 的两个表(Join_1 和 Join_2):
加入_1:
Select *
From A join B on A.id = B.id
加入_2
Select *
From A left join B on A.id = B.id
where B.id is not null
问题:Join_1 是否总是等于 Join_2?您可以考虑任何条件,例如空值、重复项等。
解决方案
出于所有实际目的,“是”。
唯一的例外是 if a.id
could be NULL
。在这种情况下,第一个版本将过滤掉这些行。第二个将包括他们。
推荐阅读
- javascript - Sequelize 不创建 set/get/add 方法
- node.js - 使用 Docker 调试 WebStorm Node.js
- html - CSS渐变有条纹(不平滑)
- reactjs - ReactDOMServer 不渲染到 react-twitter-embed
- c# - 为什么 Xamarin.Android 上的 JSON.NET 从未完成解析,我该如何解决?
- javascript - 需要一些实用的想法来解决 untappd API 的限制
- amazon-web-services - Terraform aws 承担角色
- javascript - e.target.value 在 reactjs 中未定义
- r - ggplot2 gradientn 如何设置自定义颜色和值?
- web-scraping - 已知的以太坊地址