我在名为 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
嵌套到Exploration
到ExplorationCategory
和Season
我不知道如何通过 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/