我是mysql的新手。我想在group concat()中的子查询中使用父列。
我有以下查询。
select parenttable.id,
parenttable.name,
group_concat
(
case when parenttable.id=1 then
(
select childtable.name, from c_table childtable
where childtable.id=parenttable.id
)
case when parenttable.id=2 then
(
select childtable.name from c_table childtable
where childtable.id=parenttable.id
)
end;
)
from p_table parenttable
以上查询显示"未知列parenttable.id" 。有没有解决方法来解决它。
请帮帮我。提前谢谢......
答案 0 :(得分:0)
尝试使用加入...
SELECT id,name,GROUP_CONCAT(GP_ID) FROM
(
select parenttable.id,
parenttable.name,
group_concat(
case when parenttable.id=1 then
concat(childtable.id,',',childtable.name)
when parenttable.id=2 then
concat(childtable.id,',',childtable.name)
ELSE NULL
end
) AS GP_ID
from p_table parenttable LEFT OUTER JOIN
c_table childtable
ON
childtable.id=parenttable.id
GROUP BY parenttable.id
) A