【问题标题】:SQLITE unwanted behavior on group_concat in query查询中 group_concat 上的 SQLITE 不需要的行为
【发布时间】:2018-09-23 15:32:21
【问题描述】:

我有两张这样的表:

小提琴:click here

我的查询:

select
f.id,
'{{' || group_concat(f.key||','||ifnull(f.value,'NULL'), '},{')||'}}' as 
key_value_pair_1,
'{{' || group_concat(r.key||','||ifnull(r.value,'NULL'), '},{')||'}}' as 
key_value_pair_2
FROM items_functions as f
LEFT JOIN items_functions_2 as r ON f.id = r.id
GROUP BY f.id

但这会导致一种奇怪的行为。当您运行上述链接的小提琴时,您可以看到所有结果多次显示。

但我想要的是这样的结果:

id      key_value_pair_1                   key_value_pair_2
214808  {{16,662},{17,808},{33,1},{60,2}}  {{16,662},{17,808},{33,1},{60,2}}
214809  {{16,902},{17,1103},{33,1},{60,2}} {{16,902},{17,1103},{33,1},{60,2}}
218965  {{19,808},{21,662},{33,1},{60,8}}  {{19,808},{21,662},{33,1},{60,8}}
218966  {{19,1103}{21,902},{33,1},{60,8}}  {{19,1103},{21,902},{33,1},{60,8}}
244574  {{16,999},{18,999},{54,174}}       {{16,999},{18,999},{54,174}}

我想我的查询必须调整。 :)

如果有人碰巧对此有解决方案,那就太棒了。

提前致谢!

最好的问候, 安德烈亚斯

【问题讨论】:

标签: sqlite group-concat


【解决方案1】:

我相信以下内容会满足您的要求:-

SELECT 
    p1.id, p1.kvp1, p2.kvp2
    FROM
    (
        SELECT 
            id,
            '{{' || group_concat(key||','||ifnull(value,'NULL'), '},{')||'}}' 
            AS kvp1 
        FROM items_functions GROUP BY id
    ) 
    AS p1 
    JOIN 
            (
                SELECT 
                id,
                '{{' || group_concat(key||','||ifnull(value,'NULL'), '},{')||'}}'
                AS kvp2
                FROM items_functions_2 GROUP BY id
            ) 
    AS p2 
    ON p1.id = p2.id

产生:-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 2013-09-17
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多