我的问题是我有一个查询,通过group_concat获取我需要的结果。这是查询。我已经加入了3个表,其中table1有例如人名,table2有他们喜欢的水果信息,table3有他们的水果名。在表2中,它们被编号为需要改变需求数据的原因
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 = apple和2 = orange 所以我使用定义
的函数 function fruit($value){
if ($value==1){
$result=apple;
}elseif($value==2){
$result=orange;
}
return $result;
}
因为我想要一个列而不是“1,2”是“apple,orange”我在提取结果中使用了该函数。问题是我没有得到“苹果,橙色”,而是得到“苹果”
似乎只是将我的分组归零
寻找答案,但找不到任何答案。任何人???
答案 0 :(得分:0)
您可以加入此其他表格以获取查询中的名称:
SELECT row1,group_concat(distinct table2.name) FROM table
LEFT JOIN table2 ON (table.row2 = table2.id)
GROUP by row1
显然,您需要将table2.id
和table2.name
更改为适当的内容。
至于你没有返回$result
的功能,所以对此的任何调用都将返回NULL
。只需添加:
return $result;