MySQL:如何显示个人的所有附件?

时间:2016-04-10 13:11:45

标签: mysql select

因此,作为一个例子,假设我想要显示附加到工作人员的所有项目。所以我会使用以下语句

SELECT Name, ProjectName
FROM Staff, Projects
ORDER BY Name

会返回类似这样的内容

Name | ProjectName

Adam | Project 1
Adam | Project 2
Bob  | Project 3
Bob  | Project 4

但是,我希望结果显示如此

Name | ProjectName

Adam | Project 1
     | Project 2
Bob  | Project 3
     | Project 4

如果可以,我怎样才能改变我的查询来实现这个目标?

谢谢你们。

1 个答案:

答案 0 :(得分:0)

我认为您有3种方法可以解决您的问题:

  • 如果您有特定数量的项目,那么您可以这样做:

    SELECT Name, p1.ProjectName, p2.ProjectName, p3.ProjectName, p4.ProjectName FROM Staff AS s LEFT JOIN Projects AS p1 ON s.ProjectID = p1.ProjectID AND p1.ProjectID = 1 LEFT JOIN Projects AS p2 ON s.ProjectID = p2.ProjectID AND p2.ProjectID = 2 LEFT JOIN Projects AS p3 ON s.ProjectID = p3.ProjectID AND p3.ProjectID = 3 LEFT JOIN Projects AS p4 ON s.ProjectID = p4.ProjectID AND p4.ProjectID = 4 ORDER BY Name

  • 使用存储过程。

  • 在查询外使用循环。 恩。在php:

    while ($row = $res->fetch_row()) { $result[$row['Name']][] = $row['ProjectName']; }