带有group_concat的sqlite子查询作为select语句中的列

时间:2010-10-23 06:19:33

标签: sqlite

我有两个表,一个包含一个名为watch_list的项目列表,其中包含一些重要属性,另一个表格只是一个名为price_history的价格列表。我想要做的是将10个最低价格组合成一个具有group_concat操作的列,然后创建一个包含watch_list项目属性的行以及{{1}中每个项目的10个最低价格}。首先我尝试了连接但后来我意识到操作的顺序错误,所以我无法通过连接操作获得所需的结果。然后我尝试了显而易见的事情,只是查询了watch_listprice_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语句。

1 个答案:

答案 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