-1

我是 Cakephp 2.0 的新手,但我想使用 Inner Join 查看两个表。我有以下表格:

具有记录的 hpsas:id、ciname、位置、状态

带有记录的 ldaps:id、ciname、status

我将在 MySQL 中执行的查询是:

SELECT * FROM hpsas INNER JOIN ldaps ON hpsas.ciname = ldaps.ciname;

无论是模型、控制器还是视图,我都必须使用哪种语法。

4

2 回答 2

0
$options['joins'] = array(
    array('table' => 'ldaps',
        'type' => 'inner',
        'conditions' => array(
            'hpsas.ciname = ldaps.ciname',
        )
    )
);

$this->Hpsa->find('all', $options);

有关更多详细信息,请参阅有关关联的蛋糕书部分:http: //book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables

于 2012-08-16T20:59:04.637 回答
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 以上,对任一模型的简单查询将为您提供所需的所有数据(蛋糕魔术)。

于 2012-08-16T21:54:37.330 回答