我有一个像这样的数据库结构:
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。