2010-04-28 5 views
1

Zend Framework를 통해이 문장을 실행하려고합니다. 내가 이해하는 한, Zend_Db_Select를 사용할 수 있습니다. Zend_Db_Table을 사용할 수 있습니까?Zend Framework 다중 테이블 쿼리

세 개의 테이블 : 클래스, 학생, class_students

선택 classes.name, students.student_id, students.fname, 학생, 클래스, class_students class_students.student_id = students.student_id 및 class_students에서 students.lname. class_id = classes.class_id;

답변

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()); 

예를 들어, 당신이 수행 할 여러 테이블 선택을 고려하고, 당신이 당신의 DB 어댑터가 제대로 구성되어 가정, 우리는 다음과 같은 끝낼 수 있습니다 하지만 Zend_Db_Table을 사용하면 하나의 테이블에서만 작업을 수행해야 할 때 Zend_Db_Table을 사용하는 경향이 있습니다. 여러 테이블 선택에 관해서는 차라리 db select를 사용하거나 오래된 쿼리 (SQL 문자열)를 구조화하고 db 객체를 사용하여 가져오고 싶습니다.

는 희망이 도움 :)

M.