我希望通过Zend Framework执行此语句。据我了解,我可以使用Zend_Db_Select。是否可以使用Zend_Db_Table?
三个表:班级,学生和class_students
从学生,班级,class_students中选择classes.name,students.student_id,students.fname,students.lname,其中class_students.student_id = students.student_id AND class_students.class_id = classes.class_id;
答案 0 :(得分:2)
是的,可能 - Zend_Db_Table为您提供了一个在表上执行各种操作的接口。例如,考虑到您要执行的多表选择,并假设您已正确配置了数据库适配器,我们最终可能会遇到以下内容:
$table = new Model_DbTable_Classes(); // which extends Zend_Db_Table_Abstract
$select = $table->select()->setIntegrityCheck(false);
$select->join('class_students', 'class_students.class_id = classes.class_id')
->join('students', 'student.student_id = class_students.student_id')
->where('classes.class_id = ?', 1)
->where('student.student_id = ?', 10);
$result = $table->fetchAll($select);
print_r($result->toArray());
对于这种特殊情况,我不会使用Zend_Db_Table,当我只需要对一个表执行操作时,我倾向于使用Zend_Db_Table。对于多个表选择,我宁愿选择db select,也可以构建我的查询old-school-fashioned(SQL字符串),并使用我的db对象获取它。
希望有所帮助:)
微米。