你好我有一个表名University_Industry
。它具有uni_id
和ind_id
作为大学表格和行业表格的foriegn键。所以意味着大学将拥有许多行业和行业将拥有许多大学。我通过运行此查询成功获得结果
public function getAllUniv(){
return $this->find('all', array(
'order' => 'uni_id',
));
}
此查询返回我的大学及其行业。结果看起来像这样
Array
(
[0] => Array
(
[University] => Array
(
[uni_id] => 1
[uni_name] => NYC
)
[Industry] => Array
(
[0] => Array
(
[ind_id] => 1
[ind_name] => Finance
[UniversityIndustry] => Array
(
[id] => 1
[uni_id] => 1
[ind_id] => 1
)
)
[1] => Array
(
[ind_id] => 2
[ind_name] => Accounting
[UniversityIndustry] => Array
(
[id] => 2
[uni_id] => 1
[ind_id] => 2
)
)
)
)
现在我有另一个名为用户的表,其中uni_id
也作为外键。所以我正在寻找一个查询,它只能获取那些在用户表中找到的行业的大学。所以它应该只获取那些uni_id存在于用户表中的大学
我不知道如何在查询中加入用户表并获得结果。
这就是我的大学模态目前的样子
class University extends AppModel
{
public $useTable = 'university';
public $primaryKey = 'uni_id';
public $hasAndBelongsToMany = array(
'Industry' =>
array(
'className' => 'Industry',
'joinTable' => 'university_industry',
'foreignKey' => 'uni_id',
'associationForeignKey' => 'ind_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
),
);
public function getAllUniv(){
return $this->find('all', array(
'order' => 'uni_id',
));
}
}
答案 0 :(得分:4)
您可以在查找查询中加入数据。
$this->find('all', array(
'order' => 'uni_id',
'joins' => array(
array(
'table' => 'users ',
'alias' => 'UserJoin',
'type' => 'inner',
'conditions' => array(
'UserJoin.uni_id = University.id'
)
),
));
这是official doc。希望它能帮到你