2014-01-20 66 views
0

我的問題是,我有一個查詢,與group_concat得到我需要的結果。這是查詢。我已經加入了3張桌子,其中table1有人名,table2有他們喜歡的水果信息,table3有他們的水果名稱。在表2它們被編號的原因需要改變爲需要使用group_concat功能()

SELECT 
     table1.row2, 
     table2.group_concat(distinct row2) 
    FROM table1 
    JOIN table2 
    WHERE 
     table1.row1=table2.row1 
    GROUP BY 
     table1.row1 

問題的數據是第2行給出了編號(實施例1,2),但它們是在另一個表中定義成1 =蘋果和2 =橙 所以我使用的功能與定義了

function fruit($value){ 
     if ($value==1){ 
      $result=apple; 
     }elseif($value==2){ 
      $result=orange; 
     } 
    return $result; 
    } 

因此,正如我希望有在那裏,而不是「1,2」的列是「蘋果,桔子」我使用的功能中的取出結果。問題是,我不明白「蘋果,橙」,而不是我得到「蘋果」

好像它只是我的歸零分組

找了答案,但無法找到任何。任何人?

回答

0

你可以加入到這個其他表來獲取名稱查詢:

SELECT row1,group_concat(distinct table2.name) FROM table 
LEFT JOIN table2 ON (table.row2 = table2.id) 
GROUP by row1 

顯然,你需要改變table2.idtable2.name到合適的東西。

至於你沒有返回的函數$result所以任何對此的調用將返回NULL。只需添加:

return $result; 
+0

嗯,會嘗試,但我也編輯了我的第一個問題。忘了提及我已經加入了多個表 – user3214857

+0

是的,這是訣竅。進行另一次加入並失去我的initali分組並將一個分組設置到table3行 – user3214857