php - 在cakephp中访问相关模型/表进行内连接查询

标签 php mysql sql cakephp

我在名为 Application 的分页模型中有这个 inner join 查询

Application 有许多 AssignedExploration

AssignedExploration 属于 Exploration

探索属于ExplorationCategory

ExplorationCategory 属于Season

到目前为止我的查询是:

$session_condition = array(
    'table' => 'assigned_explorations',
    'alias' => 'AssignedExploration',
    'type' => 'INNER',
    'conditions' => array(
        'AssignedExploration.application_id = Application.id',
        'OR' => array(
            array('AssignedExploration.label' => $this->request->named['filter_session'])
        )
    )
);

我想在 OR 中添加另一个查询,该查询将获取具有 Season.name =fall

applications

我尝试添加 array('Season.name' => 'fall') :

$session_condition = array(
    'table' => 'assigned_explorations',
    'alias' => 'AssignedExploration',
    'type' => 'INNER',
    'conditions' => array(
        'AssignedExploration.application_id = Application.id',
        'OR' => array(
            array('AssignedExploration.label' => $this->request->named['filter_session']),
            array('Season.name' => 'fall')
        )
    )
);

但运气不佳。 AssignedExploration 似乎无法识别季节。

我想从AssignedExploration嵌套到ExplorationExplorationCategorySeason

我不知道如何通过 cakephp 进行 inner join 查询。

提前致谢。

编辑:截至目前的查询:

INNER JOIN 
    `ntc_development`.`assigned_explorations` AS `AssignedExploration` ON ( 
        `AssignedExploration`.`application_id` = `Application`.`id` 
         AND 
         `AssignedExploration`.`label` = 'fall'
     )

最佳答案

$this->paginate['Application'] = array(
                'recursive' => -1,
                'joins' => array(
                    array(
                        'table' => 'assigned_explorations',
                        'alias' => 'AssignedExploration',
                        'type' => 'inner',
                        'foreignKey' => true,
                        'conditions' => array('AssignedExploration.application_id = Application.id')
                    ),
                    array(
                        'table' => 'seasons',
                        'alias' => 'Season',
                        'type' => 'inner',
                        'foreignKey' => true,
                        'conditions' => array('Season.id = Application.season_id') # whats your foregin key
                    ),                                         
                ),
                'fields' => array(),
                'conditions' => array('Season.name' => 'fail'),
            );

关于php - 在cakephp中访问相关模型/表进行内连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24300683/

相关文章:

mysql - 第 462 行的 fatal error : Maximum execution time of 60 seconds exceeded in\doctrine\lib\Doctrine\Collection. php

mysql - 无法连接到 '127.0.0.1' (10061) 上的 MySQL 服务器

MYSQL 多对多查询同一张表

php - 根据另一个 SQL PHP 的结果从一个表中获取数据

sql - SQL 中的感叹号 (Oracle)

php - 插入 php 数据库 "No Database Selected"错误

php - PHPUnit 中的单元测试 - 处理多个条件

php - 在 HasMany 关系上排序 Laravel 5

php - 我可以在准备好的语句中参数化表名吗?

c# - MySqlDataReader.GetSchemaTable ColumnOrdinal 是实际数据的+1