Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将相同的id和mrege数据合并到一个记录中?_Php_Mysql - Fatal编程技术网

Php 如何将相同的id和mrege数据合并到一个记录中?

Php 如何将相同的id和mrege数据合并到一个记录中?,php,mysql,Php,Mysql,我的数据库结构如下: Car - id - carname - image - category - status Parts - partid - partname CarParts - carpartid - carid(fk) - partid(fk) - amountid(fk) Category - id - categoryname Amount - amountid - amountvalue 这就是我现在正在做的: SELECT *

我的数据库结构如下:

Car
 - id   
 - carname
 - image
 - category
 - status

Parts
 - partid
 - partname

CarParts
 - carpartid
 - carid(fk)
 - partid(fk)
 - amountid(fk)

Category
 - id
 - categoryname

Amount
 - amountid
 - amountvalue
这就是我现在正在做的:

SELECT * FROM carparts
INNER JOIN car on carparts.carpartid = car.id 

INNER JOIN parts on parts.partid = carparts.carpartid

INNER JOIN amount on amount.amountid = carparts.amountid where status = 1
当carparts表中有多个carpart时,将返回重复记录。如何将carparts.id和car.id合并到一行,但该记录仍有多个partname?

试试这个

SELECT * FROM car left join  carparts on car.id = carparts.carpartid 
left join  parts on parts.partid = carparts.carpartid
left join amount on amount.amountid = carparts.amountid where status = 1
group by car.id
谢谢。

您可以使用:

SELECT group_concat(parts.partname) as parts FROM car left join  carparts on car.id = carparts.carpartid 
left join  parts on parts.partid = carparts.carpartid
left join amount on amount.amountid = carparts.amountid where status = 1
group by car.id
因为我们需要合并记录,所以我们通过GROUPBY子句进行合并。此外,由于我们需要在一行中包含多个记录,因此我们使用group_concat来连接多个结果。
注意:对于group_concat返回的值的数量有一些限制?

请不要只发布代码,解释它的作用以及为什么这样做是正确的。这不会为一条记录提供多个部件名。我尝试使用group by which返回一条记录,但我不能为一条记录提供多个部件名。嗨,这只返回部件,我仍然需要剩余的记录data@JakeDawsen:您可以检索其他列,如:Select col1,col2,组_concat(parts.partname)作为零件。。。。