如何在mysql中使用group concat子查询中的父列?

时间:2014-04-04 05:19:02

标签: mysql subquery group-concat

我是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" 。有没有解决方法来解决它。

请帮帮我。提前谢谢......

1 个答案:

答案 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