首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否合并具有不同外键的多个值的同一产品ID的多个实例?

是否合并具有不同外键的多个值的同一产品ID的多个实例?
EN

Stack Overflow用户
提问于 2013-12-07 03:37:46
回答 1查看 381关注 0票数 0

我有一个在MySQL的产品数据库,并试图查看与PHP的内容。我目前正在使用3个表: prod、div和prodCatDiv。prod表保存每个产品的数据,而div表保存我公司5个部门中每个部门的ID。prodCatDiv表是一个连接表,其外键与其他两个表的ID相关。

我的表是这样设置的:

代码语言:javascript
复制
prod
-
prodID | prodName | prodImg | prodDesc

div
-
divID | divName

prodCatDiv
-
prodID | catID | divID

我的SQL语句如下:

代码语言:javascript
复制
"SELECT * FROM prod LEFT JOIN prodCatDiv ON prod.prodID=prodCatDiv.prodID ORDER BY prodUpdate DESC";

但是,当我尝试用这些表中的数据填充一个页面时,我从同一个prodID获得了多个清单。因此,如果我同时将prodID=1归因于divID=1和divID=2,那么它会列出该产品两次,每个清单上都有第一和第二个部门。我如何组合这两个清单,使其显示同时属于divID=1和divID=2的一个prodID=1?

我在页面上有一个表格来显示结果。在此表中,每个部门都有列,这些列被“勾选”,以便用户可以看到每个产品所在的部门。目前,如果产品在两个部门中,它将为该产品创建两行。我希望这个基于prodID的产品是一个单行,在它所属的两个分区列中都有一个复选标记。

EN

回答 1

Stack Overflow用户

发布于 2013-12-07 04:26:09

您可以聚合这些值并创建包含DivId列表的单个列:

代码语言:javascript
复制
SELECT p.*, group_concat(pcd.DivId separator ', ') as DivIds
FROM prod p LEFT JOIN
     prodCatDiv pcd
     ON p.prodID = pcd.prodID
GROUP BY p.ProdId
ORDER BY prodUpdate DESC;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20432162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档