CHART
查询后,我需要该结果:
name type shape
---------------------
name1 type1 shape1
name1 type2 shape1
name1 type3 shape2
我只能思考:
name shape1Types shape2Types
-----------------------------------
name1 type1, type2 type3
但是这里说shape1Types是未知列
答案 0 :(得分:1)
尝试以下情况,如下尝试
select name, group_concat(case when shape='shape1' then type end) as shape1Types, group_concat(case when shape='shape2' then type end) as shape2Types
from table
group by name
答案 1 :(得分:0)
在该WHERE子句中别名名称shape1Types和shape2Types未知。
因此,错误。
您可以IN
代替其他两个表中的唯一类型,而不必使用JOIN
。
select
t.name,
group_concat(shape1.type) as shape1Types,
group_concat(shape2.type) as shape2Types
from table1 t
left join (select type from table2 where shape = 'shape1' group by type) shape1
on shape1.type = t.type
left join (select type from table3 where shape = 'shape2' group by type) shape2
on shape2.type = t.type
where t.name = 'name1'
-- and (shape1.type is not null or shape2.type is not null)
group by t.name