我的SQLite数据库表(fldSuit)中有一列,它将限制列表的代码存储在一个字符串中。这些代码在一个单独的表(fldAtts)中都有一个描述。例子如下:
fldsSuit
fld_id fld_limits
1 HR, HST
fldAtts
fld_att_code fld_att_desc
HCA Hindrance - Canals
HR Hindrance - Row Width
HST Hindrance - Stones如何查询数据库的外观:
Desired Output
Field Limitations
1 Hindrance - Row Width, Hindrance - Stones希望你能帮我。
编辑:将实际名称放在上面,然后尝试下面的解决方案:
SELECT
f.fld_id,
group_concat(a.fld_att_desc) as Limitations
FROM fldsSuit f
LEFT JOIN fldAtts a
ON ',' || REPLACE(Limitations, ' ', '') || ',' LIKE
'%,' || a.fld_att_code || ',%'
GROUP BY
f.fld_id;发布于 2018-02-06 03:32:17
SQLite有一个GROUP_CONCAT函数,可以在这里提供帮助。我们可以按字段进行聚合,然后获取值的组连接。联接条件很混乱,因为我们需要将第二个表中的单个代码与第一个表中的CSV限制列表相匹配。
SELECT
t1.Field,
GROUP_CONCAT(t2.Value) AS Limitations
FROM Table1 t1
LEFT JOIN Table2 t2
ON ',' || REPLACE(t1.Limitations, ' ', '') || ',' LIKE
'%,' || t2.Code || ',%'
GROUP BY
t1.Field;https://stackoverflow.com/questions/48634988
复制相似问题