-1
Book
(卖价)
无两个书具有相同的价格。执行具有计数功能的SQL查询与在WHERE子句
SELECT bid
FROM Book t1
WHERE (SELECT count(*)
FROM Book t2
WHERE t1.price > t2.price) < 3
请详细解释一下上面查询的例子和结果的执行情况。
Book
(卖价)无两个书具有相同的价格。执行具有计数功能的SQL查询与在WHERE子句
SELECT bid
FROM Book t1
WHERE (SELECT count(*)
FROM Book t2
WHERE t1.price > t2.price) < 3
请详细解释一下上面查询的例子和结果的执行情况。
对于表Book
中的每本书,WHERE
子句中的相关子查询计算了价格严格低于Book
的书籍数。如果该数小于三,则选择该书。
基本上,查询的答案是:选择所有书籍的价格较低,最多存在两本书。
这也可以写成简单如下(假设没有两个价格是任何对本书一样):
SQL服务器:
SELECT TOP 3 bid FROM book ORDER BY price ASC;
ANSI/ISO SQL :2008
SELECT bid FROM book ORDER BY price ASC
FETCH FIRST 3 ROWS ONLY
其实我只是想知道这个查询如何在内部执行? –
SO是针对实际的编程问题,而不是解释代码的工作原理。选择一个SQL教程,网上有很多。 – HoneyBadger
你为什么不试验'EXPLAIN'? –