2015-02-17 3 views
-4

Как получить данные с общим идентификатором пакета из трех таблиц с объединением в cakephp?Как получить данные из трех таблиц с объединением в cakephp?

Идентификатор пакета является общим для трех таблиц.

Я хочу получить данные из трех таблиц с определенным идентификатором пакета.

Есть ли какой-либо запрос для получения данных для определенного идентификатора пакета из трех таблиц во время подписки?

+0

Укажите ваши имена таблиц с их схемами/таблицей полого –

+0

OP, уход, чтобы проверить ответ ?? –

ответ

0

присоединяется может быть сделан следующим образом, заменить ваши таблицы вместо шахтной

Пусть здесь мой стол, контроллер CourseLessonsReference контроллер, так что я могу присоединиться к другим 2 или несколько таблиц следующим образом:

$conditionForId = array('CourseLessonsReference.course_id'=>$package_id, 
    ); 


    //Pagination logic 
    $this->paginate = $allConditionsFields = array('conditions' => $conditionSearchLessonsByCourse,                         
          "joins" => array(
              array(//UserCourse = Course Join 
               "table" => "courses", 
               "alias" => "Course1", 
               "type" => "INNER", 
               "conditions" => array(
                "Course1.id = CourseLessonsReference.course_id" 
               ) 
              ),//For Category = Course Join 
              array(
               "table" => "course_categories", 
               "alias" => "CourseCategory", 
               "type" => "INNER", 
               "conditions" => array(
                "CourseCategory.id = Course1.course_category_id" 
               ) 
              ) 
             ), 
          'recursive' => 2        
          ); 


$resultOfJoin = $this->CourseLessonsReference->find('all', $allConditionsFields); 

$ resultOfJoin даст вам результат для объединений из трех таблиц.

Это означает объединение Текущая таблица CourseLessonsReference с указанными таблицами в теге Join в массиве $ allConditionsFields.

Как вы не указали схему своих таблиц, здесь, в моем случае, текущий контроллер/модель/таблица - это CourseLessonsReference, которая будет иметь ссылки. Ссылки связаны с курсом, поэтому course_id - это внешний ключ в таблице course_lessons_reference. Итак, это 1 соединение. Теперь курс связан с категорией, поэтому курс будет иметь course_category_id как внешний ключ.

2

Есть два основных способа, которыми вы можете это сделать. Одним из них является стандарт CakePHP способ, а другой - с использованием пользовательского соединения.

CakePHP Join Multiple Table

Смежные вопросы