sql-server - 这两种说法有什么区别?
问题描述
我是 SQL 的学生,正在 Northwind 数据库上运行这两个查询。以下两个查询都在获取不同的数据集。我认为它们都是相同的,但我无法理解的是如何获取不同的数据集。
select o.*
from dbo.Orders o
where 36 < (
select Quantity
from [Order Details] od
where ProductID = 17
and od.OrderID = o.OrderID
)
这将检索 9 条记录。
select o.*
from Orders o
join [Order Details] od on od.OrderID = o.OrderID
where Quantity < 36
and ProductID = 17
这将检索 27 条记录。
有人可以向我解释这个难题。
解决方案
简单的。
第一个测试是否
36 < Quantity
.
第二个测试是否
Quantity < 36
.
推荐阅读
- html - 谷歌地图有额外的宽度
- apostrophe-cms - Apostrophe CMS:在嵌套连接中获取片段数据(joinByArray – joinByOne)
- javascript - 使用 kepresses 和 if 语句来启用和禁用元素
- assembly - 如何在装配臂中打印多个字符串?
- javascript - 使用 Ionic 4 Angular Fire Auth 保护的无限 console.logging
- azure - 创建函数应用时出现“此区域不允许此订阅的缩放操作”错误
- ios - 如何从 A 中减去 UIBezierPath A&B 的交集?
- c# - 在c#中将基类动态转换为子类
- telegram-bot - 使用 SOCKS5 的 Telegram Bot api
- linux - 未从 arm 设备加载 goodix 驱动程序