Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在select语句中将group_concat作为列的sqlite子查询_Sqlite - Fatal编程技术网

在select语句中将group_concat作为列的sqlite子查询

在select语句中将group_concat作为列的sqlite子查询,sqlite,Sqlite,我有两个表,一个包含一个名为watch\u list的项目列表,其中包含一些重要属性,另一个只是一个名为price\u history的价格列表。我想做的是使用group_concat操作将10个最低价格分组到一个列中,然后使用监视列表中的项目属性以及监视列表中每个项目的10个最低价格创建一行。首先我尝试了连接,但后来我意识到操作的顺序是错误的,因此我无法通过连接操作获得所需的结果。然后我尝试了一个显而易见的方法,只是查询了watch\u列表中每一行的price\u history,然后在主机环

我有两个表,一个包含一个名为
watch\u list
的项目列表,其中包含一些重要属性,另一个只是一个名为
price\u history
的价格列表。我想做的是使用group_concat操作将10个最低价格分组到一个列中,然后使用
监视列表
中的项目属性以及
监视列表
中每个项目的10个最低价格创建一行。首先我尝试了连接,但后来我意识到操作的顺序是错误的,因此我无法通过连接操作获得所需的结果。然后我尝试了一个显而易见的方法,只是查询了
watch\u列表
中每一行的
price\u history
,然后在主机环境中将所有内容粘在一起,这很有效,但似乎效率很低。现在我有了下面的查询,它看起来应该可以工作,但是它没有给我想要的结果。我想知道以下说法有什么问题:

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\u concat
做任何事情之前,但我想不出一个sql语句可以做到这一点。

解决了它,正如有人曾经说过的那样,“计算机科学中的所有问题都可以通过另一个间接层次来解决。”在本例中,一个额外的
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