-1

私は Cakephp 2.0 の初心者ですが、Inner Join を使用して 2 つのテーブルのビューを作成したいと考えています。次のテーブルがあります。

レコード付きの 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);

詳細については、関連付けに関する Cake book セクションを参照してください: http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables

于 2012-08-16T20:59:04.637 に答える
0

このモデルからのレコードが必要になるたびに複雑なクエリを実行することを避けるために、モデルでリレーションシップを定義する必要があると思います。ケーキの慣例に固執する必要があります。つまり、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 以上の再帰セットを使用すると、モデルのいずれかに対する 1 つの単純なクエリで、必要なすべてのデータが得られます (ケーキの魔法)。

于 2012-08-16T21:54:37.330 に答える