Php 将多个MySQL行放入一个字段中
我在stackoverflow尝试了一个类似问题的解决方案,但没有成功。 下面是mysql查询:Php 将多个MySQL行放入一个字段中,php,mysql,Php,Mysql,我在stackoverflow尝试了一个类似问题的解决方案,但没有成功。 下面是mysql查询: $sql= "SET group_concat_max_len = 2048"; $sql = "select p.id,p.name,p.logo,p.short_description, GROUP_CONCAT(c.category_name SEPARATOR ', ') from eshop p, eshop_cat c GROUP BY p.id"; 我不明白这个查询出了什么问题
$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description, GROUP_CONCAT(c.category_name SEPARATOR ', ') from eshop p, eshop_cat c GROUP BY p.id";
我不明白这个查询出了什么问题,但是c.category是空的。如果我在没有组concat的情况下执行此操作,并使用内部联接,我将正确接收所有数据。但对于同一产品,对于每种产品的每个类别,我都有多行。(例如,如果一个产品有3个类别,那么它会显示该产品3次。)我只希望每个产品有一行,这些类别用逗号分隔
你能帮帮我吗?像这样试试
$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description, GROUP_CONCAT(c.category_name SEPARATOR ', ') as category_names from eshop p join eshop_cat c on
p.id=c.id GROUP BY p.id";
只需放置关系列
p.id=c.id
,它就可以为您工作。为什么要这样做?您的查询似乎缺少连接条件。eshop
和eshop\u cat
之间的关系是什么?