【发布时间】:2011-11-04 17:50:58
【问题描述】:
我有几个表需要显示数据。
Schools
-------
id | Title
Programs
--------
id | descr | title | type | school.id
当然,不是最好的设置,但我对数据库结构无能为力。
我需要创建一个列表,按学校、课程和课程类型分隔。现在,我有一个巨大的嵌套循环(伪代码):
Select * from Schools
For Each School
print $school_header;
Select Program Type from Programs WHERE School.id = $school_id
For Each Program type
print $type_header;
Select * from Programs where School.id = $school_id and type = $program_type
For Each Program
print $program_link;
不用说这是一团糟。
最终结果是一个列表:
- 程序 1
- 程序类型 1
- 程序
- 程序
- 程序类型 2
- 程序
- 程序
- 程序类型 3
- 程序
- 程序类型 1
有没有一种方法可以通过更少的查询和更少的代码而不是数据库密集型来做到这一点?
【问题讨论】:
标签: php sql join while-loop nested-loops