【发布时间】:2018-10-10 18:29:50
【问题描述】:
这个作业的问题:查询的结果是什么?
我知道答案,但我不太明白 SQL 查询是如何工作的,尤其是在我用问号标记的行中。
到目前为止,我意识到首先我们join two tables from subquery
SQL 查询:
select Count(*)
from OrderDetails as OD
inner join [Order] as O on OD.idOrder = O.id
where SalePrice = all (select Price
from OrderDetails
inner join [Order] on OrderDetails.idOrder = [Order].id
where idCustomer != O.idCustomer
and OrderDetails.idProduct = OD.idProduct)
【问题讨论】:
-
什么是数据库引擎?看起来像 SQL Server。
-
任务中没有指定是哪个数据库引擎。
-
除了引用标识符和非标准不等于运算符之外,这是标准 SQL。回答问题不需要知道。
-
在您的示例中,除非您的子查询仅返回 1 条记录,并且您的主查询中存在 SalePrice,否则您将不会返回数据。这是因为运算符在 ALL ('=') 之前。可以在这里找到关于 ALL 的非常好的插图:w3resource.com/sql/special-operators/sql_all.php
-
提示:不使用图片的原因是here。
标签: sql tsql correlated-subquery