我有以下数据库表:
- 表:
person列:id, first_name, age, city, state - 表:
study列:id, name, description, notes - 表:
person_studies列:person_id, study_id, notes
我需要获取特定人员参与的所有研究名称:
person.id, person.first_name, person.city, study.name
这是我为获取 a 的数据而编写的查询person.id = 14:
select person.id, person.first_name, study.name from person
left join person_studies on person.id = person_studies.person_id
left join study on person_studies.study_id = study.id
where person.id=14;
由于一个人可能参与多项研究,因此我在结果集中得到了不止一行。我需要使用 Zend_Db api 来实现它。
问题是:
- 1.有没有更好的方法来编写这个查询?
- 2. 如果我想在单独的数组中获取 study.name 值作为结果集的一部分,是否可以在查询中这样做,这样当我在 Zend 中运行查询时:
`$result = $this->fetchAll($select);`其中 $select 是 sql 语句 $result 应该是以下格式:
[0] => 数组
(
[person.id] => 14
[名字] =>杰米
[study_names] => 数组
(
[0] => 生物技术;
[1] => 数学;
[2] => 航空;
)
)
任何帮助将不胜感激。
谢谢