数据库
首页 > 数据库> > mysql – 如何为一条记录显示多个名称但不重复记录?

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 * 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?

所以必须要发生的是每辆车可能有多个汽车零件,但是当查询运行时,如果一个记录有多个汽车零件,则显示具有不同零件名的重复记录,是否有一种方法可以让一辆汽车具有多个零件名称那个记录?

我是否必须更改数据库结构或查询才能执行此操作?

解决方法:

你的结构很好看.除了您可以将金额合并到零件表.因为每个部分都与价格紧密相关.

此外,如果您的任何维度表不遵循严格的主要约束,那么只有您将拥有重复行的原因.

Car
 - id (pk)
 - carname
 - image
 - category
 - status

Parts
 - partid (pk)
 - partname
 - amountValue

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

Category
 - id (pk )
 - categoryname

标签:php,mysql,mysql-5-5
来源: https://codeday.me/bug/20190807/1606306.html