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)作为零件。。。。