因此,作为一个例子,假设我想要显示附加到工作人员的所有项目。所以我会使用以下语句
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
如果可以,我怎样才能改变我的查询来实现这个目标?
谢谢你们。
答案 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'];
}