2014-04-04 14 views
0

我是mysql新手。我想在組concat()中的子查詢中使用父列。如何使用mysql中的組合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 

以上查詢顯示「Unknown column parenttable.id」。有沒有解決方案來解決它。

請幫幫我。在此先感謝...

+0

你真的有列'id'在p_table?如果從查詢中刪除group_concat會怎麼樣?它會起作用嗎? – Uriil

+0

是的,它是可用的。刪除組concat後它正在工作。 –

+0

你的子查詢應該只返回一列。因此,根據您的需要concat childtable.id和childtable.name或刪除其中之一 – Uriil

回答

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 
+0

感謝您的回覆。不,我不需要外部連接。我只想在組concat中使用子查詢。 –

+0

嘗試移動子查詢中的group_concat – Gooner

+0

仍然顯示相同的錯誤。有沒有其他方法? –

相關問題