我有两个表,一个包含一个名为watch_list
的项目列表,其中包含一些重要属性,另一个表格只是一个名为price_history
的价格列表。我想要做的是将10个最低价格组合成一个具有group_concat操作的列,然后创建一个包含watch_list
项目属性的行以及{{1}中每个项目的10个最低价格}。首先我尝试了连接但后来我意识到操作的顺序错误,所以我无法通过连接操作获得所需的结果。然后我尝试了显而易见的事情,只是查询了watch_list
中price_history
的每一行,只是在主机环境中将所有内容粘在一起但效果非常低效。现在我有以下查询看起来它应该工作,但它没有给我我想要的结果。我想知道以下陈述有什么问题:
watch_list
基本上我希望在select w.asin,w.title,
(select group_concat(lowest_used_price) from price_history as p
where p.asin=w.asin limit 10)
as lowest_used
from watch_list as w
执行任何操作之前发生limit
操作,但我想不到会执行此操作的sql语句。
答案 0 :(得分:3)
没关系,因为有人曾经说过“计算机科学中的所有问题都可以通过另一层次的间接解决。”在这种情况下,额外的select
子查询可以解决这个问题:
select w.asin,w.title,
(select group_concat(lowest_used_price)
from (select lowest_used_price from price_history as p
where p.asin=w.asin limit 10)) as lowest_used
from watch_list as w