这个SQL语句的结果是什么?为什么?
本帖最后由 gaswei 于 2013-06-29 11:57:57 编辑 SELECT order_num, total_price
FROM items a
WHERE 10 >
( SELECT COUNT ( * ) FROM items b WHERE b.total_price < a.total_price )
ORDER BY total_price
看不明白为什么是选出最小的前10项,求解释,谢谢!
[解决办法]
你可以这么看,加入total_price有
1-20 20个数,取a.total_price为13,小于这个数的有多少,1-12,12个是吧! 12 肯定是大于 10的,那么13肯定不符合,看到这个判断逻辑,楼主应该清楚一些东西了吧!这个查询相当于对于一个特定的total_price,只要小于它的数据行数不超过10,就可以被查询到,怎么才能小于10,当然要让这个特定的total_price在最小的10个toal_price范围之内,那么查询到的也就是最小的10个total_price对应的数据。