2010-10-23 87 views
2

我有两个表,其中一个包含一个项目列表,其中包含一些重要属性的项目watch_list,另一个项目只是一个名为price_history的价格列表。我想要做的是将10个最低价格组合成一个包含group_concat操作的列,然后创建一个包含watch_list的项目属性的行以及watch_list中每个项目的10个最低价格。首先,我尝试了连接,但后来我意识到发生错误顺序的操作,因此无法通过连接操作获得所需的结果。然后我尝试了一些显而易见的事情,只是询问watch_list中的每一行price_history,并将所有东西都粘在了可以工作但似乎效率很低的主机环境中。现在我有下面的查询,它看起来应该可以工作,但它没有给我我想要的结果。我想知道什么是错用下面的语句:带有group_concat的sqlite子查询作为select语句中的列

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操作group_concat做任何事情之前,但我想不出一个SQL语句,将做到这一点的。

回答

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