Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cakephp中使用join从三个表中获取数据?_Php_Mysql_Cakephp_Join - Fatal编程技术网

如何在cakephp中使用join从三个表中获取数据?

如何在cakephp中使用join从三个表中获取数据?,php,mysql,cakephp,join,Php,Mysql,Cakephp,Join,如何在cakephp中使用join从三个表中获取具有公共包id的数据 包id在三个表之间是通用的 我想从三个具有特定包id的表中获取数据 是否有任何查询可以在单个时间从三个表中获取特定包id的数据?连接可以按如下方式完成,替换您的表而不是我的表 假设这里我的表controller是courselessonreference controller,因此我可以按如下方式连接其他2个或多个表: $conditionForId = array('CourseLessonsReference.course

如何在cakephp中使用join从三个表中获取具有公共包id的数据

包id在三个表之间是通用的

我想从三个具有特定包id的表中获取数据


是否有任何查询可以在单个时间从三个表中获取特定包id的数据?

连接可以按如下方式完成,替换您的表而不是我的表

假设这里我的表controller是courselessonreference controller,因此我可以按如下方式连接其他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将为您提供3个表的联接结果

这意味着将当前表CoursElessOnReference与$allConditionsFields数组中join标记中的指定表联接


由于您没有提供表的架构,在我的例子中,当前的控制器/模型/表是CoursElessOnReference,它将具有引用。参考与课程相关联,因此课程id是课程课程参考表中的外键。这是一个join。现在,课程已连接到类别,因此,课程将以课程类别id作为外键。

有两种主要方法可以做到这一点。其中一种是标准的CakePHP方式,另一种是使用自定义联接


指定表名及其模式/表字段SOP,是否检查答案??