【发布时间】:2012-01-13 00:15:20
【问题描述】:
伙计们,我的数据库中有以下表格
位置
- id(主键)
- 姓名
项目
- id(主键)
- location_id(外键=>位置)
- 项目名称
里程碑
- id(主键)
- 姓名
状态
- id(主键)
- 状态
project_milestones
- id(主键)
- project_id(外键 => 项目)
- milestone_id(外键 => 里程碑)
- status_id(外键=>状态)
在这里,为了列出所有项目的所有里程碑(状态为 9),我使用以下查询
SELECT projects.projectname, locations.name, DATE_FORMAT(projects.created_at, '%d-%m-%y') as projectdate,
GROUP_CONCAT(milestones.name ORDER BY project_milestones.milestone_id ASC separator '<br/>') AS milestones
FROM projects INNER JOIN locations ON projects.location_id=locations.id
INNER JOIN project_milestones ON project_milestones.project_id=projects.id AND project_milestones.status_id=9
INNER JOIN milestones ON project_milestones.milestone_id=milestones.id
INNER JOIN statuses ON project_milestones.status_id=statuses.id
AND project_milestones.milestone_id=milestones.id GROUP BY projects.projectname
结果如下所示
位置 创建日期 项目名称 里程碑(状态 9) 班加罗尔 25-10-11 ABCD CSO 联系人,开发人员 班加罗尔 11-11-11 星期五 建立,发布列表 班加罗尔 2011 年 8 月 11 日 XX CSO 联系人、组装、布局效果很好,但我需要另一个 GROUP_CONCAT 列说 里程碑(状态 10) 来显示所有项目的所有里程碑(状态 10)。
与列出 [Status-9 里程碑] 和 [Status-10 里程碑] 的所有项目类似的输出。我该怎么做?
【问题讨论】:
标签: mysql conditional-statements group-concat