次のような MySQL クエリを CakePHP 2.0 で作成したいと考えています。
select p.ciname HOSTNAME
,a.status HPSA
,m.status SM9
,p.status LDAP
from hpsas a, hpsms m, ldaps p
where (p.ciname = a.ciname)
and (p.ciname = m.ciname)
order by p.ciname;
これは可能ですか?
次のような MySQL クエリを CakePHP 2.0 で作成したいと考えています。
select p.ciname HOSTNAME
,a.status HPSA
,m.status SM9
,p.status LDAP
from hpsas a, hpsms m, ldaps p
where (p.ciname = a.ciname)
and (p.ciname = m.ciname)
order by p.ciname;
これは可能ですか?
Model.query()
このメソッドを使用して、CakePHPで任意のSQLクエリを作成できます。たとえば、コントローラでは次のようになります。
$sql = ...your sql here...
$results = $this->ModelName->query($sql);
ケーキORMを使用してこのクエリを作成しようとしている場合、これはその方向への一歩になると思います。
$options = array();
$options['fields'] => array('p.ciname AS HOSTNAME', 'a.status AS HPSA', 'm.status AS SM9', 'p.status AS LDAP');
$options['joins'][] => array('table' => 'hpsas', 'alias' => 'a', 'conditions' => array('p.ciname = a.ciname'));
$options['joins'][] => array('table' => 'hpsms', 'alias' => 'm', 'conditions' => array('p.ciname = m.ciname'));
$result = $this->Test->find('all', $options);
これらのフィールドとテーブル名は、プロジェクトを移行または統合する場合に理解できる、ケーキの規則に準拠していません。今から始めている場合は、名前を変更することをお勧めします。