使用MySQL PHP显示公文包项目的信息并显示多个类别

使用MySQL PHP显示公文包项目的信息并显示多个类别,php,mysql,Php,Mysql,感谢您阅读本文并尝试提供帮助 我遇到的问题如下:我试图创建一个公文包页面,使用流沙库在屏幕上按类别对结果进行排序,以显示每个公文包项目。棘手的是,有些项目可能属于多个类别 到目前为止,我得到的是: MySQL表: 投资组合 id |日期|添加|日期|项目|项目|标题|描述| url |使用的技能| 类别 id |类别|名称 投资组合\u类别 项目标识|类别标识 对于这3个表,我一直试图使用内部联接来显示信息,但都没有成功,但我无法为此提供正确的查询结构 我基本上希望显示(回显)表公文包中的所有信

感谢您阅读本文并尝试提供帮助

我遇到的问题如下:我试图创建一个公文包页面,使用流沙库在屏幕上按类别对结果进行排序,以显示每个公文包项目。棘手的是,有些项目可能属于多个类别

到目前为止,我得到的是:

MySQL表:

投资组合

id |日期|添加|日期|项目|项目|标题|描述| url |使用的技能|

类别

id |类别|名称

投资组合\u类别

项目标识|类别标识

对于这3个表,我一直试图使用内部联接来显示信息,但都没有成功,但我无法为此提供正确的查询结构

我基本上希望显示(回显)表公文包中的所有信息,以及每个公文包项目所包含的所有类别

如果有人能帮我找出正确的问题,我会非常感激


事先非常感谢。

这类问题可能重复了很多次

SELECT p.*, GROUP_CONCAT(DISTINCT c.category_name SEPARATOR ',')
FROM portfolio
    LEFT JOIN portfolio_categories pc ON pc.project_id = p.id
    LEFT JOIN categories c ON c.id = pc.category_id
GROUP BY p.id
检查此查询:

"SELECT * FROM portfolio, portfolio_categories, categories  
WHERE portfolio.id = portfolio_categories.project_id 
AND portfolio_categories.category_id = categories.id";

投资组合与类别是一对一关系还是一对多关系?投资组合与类别中的项目与id=id(投资组合)?很抱歉,我之前错过了这一点。。对是一对多(一个公文包项目对应多个类别。另外,portfolio.id=portfolio\u categories.project\u id谢谢你的回答!我会尝试一下,然后回来告诉你它是否对我有效!嘿,我尝试过你上面提供的这个选项,是的,在某种程度上是有效的。但我得到的重复项目列表和类别一样多列出在:示例…项目1,类别1+项目1,类别2+项目1,类别3…中,我想要实现的是:项目1,类别1+类别2+类别3(在单个迭代或列表中)。请您对此有何建议?我在过去几天中一直在尝试,但没有成功:(您好,谢谢您的帮助,对给您带来的不便表示歉意。与其他答案一样,我将尝试此答案,并在尝试后尽快返回!