我是Cakephp 2.0中的新手,但我想用Inner Join来查看两个表。 我有以下表格表:
带有记录的hpsas:id,ciname,location,status
ldaps记录:id,ciname,status
我在MySQL中的查询是:
SELECT * FROM hpsas INNER JOIN ldaps ON hpsas.ciname = ldaps.ciname;
我必须在模型,控制器或视图中使用哪种语法。
答案 0 :(得分:0)
$options['joins'] = array(
array('table' => 'ldaps',
'type' => 'inner',
'conditions' => array(
'hpsas.ciname = ldaps.ciname',
)
)
);
$this->Hpsa->find('all', $options);
有关详细信息,请参阅关于关联的Cake书部分:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables
答案 1 :(得分:0)
遵循activeRecord模型我认为您应该在模型中定义关系,以避免每次需要此模型的记录时运行复杂查询。你将需要坚持蛋糕的惯例,这意味着你将有3个模型(最有可能)
class cinema extends AppModel{
hasMany = array(hpsas,idaps);
}
class hpsas extends AppModel{
belongsTo = array(cinema)
}
class idap extends AppModel{
belongsTo = array(cinema)
}
使用递归设置在2或3以上的任何一个模型的简单查询将为您提供所需的所有数据(蛋糕魔术)。