[Symfony] Criteria でテーブルに別名を指定する
こんばんは、Tyです。
データベースのSelect文実行の際に、テーブルの名前に
別の名前を table_name as A 等と指定する方法がありますが、
Criteriaで同じような表現を実装させるためにはどうするか、
といったお話です。
たとえば、
SELECT * FROM user as A Left Join user as B on A.company_id;
というように、userというテーブルに別名を指定して自分自身を
Joinさせるような処理を実装する場合は、
addAliasという関数を用いて別名を追加して、
Peerオブジェクトのaliasで指定された別名を呼び出します。
//addAlias('指定したい名前', '実際のテーブル名');
$c = new Criteria();
$c->addAlias('A', UserPeer::TABLE_NAME);
$c->addAlias('B', UserPeer::TABLE_NAME);
//alias('指定した名前', カラム名)
$c->addJoin(UserPeer::alias('u1', UserPeer::ID), UserPeer::alias('u1', UserPeer::COMPANY_ID), Criteria::LEFT_JOIN);
$rs = UserPeer::doSelectRS($c);
投稿日:08年09月25日 21:16:03
- 次の記事:「させていただく」という言葉について
- 前の記事:PanasonicのEUのキャンペーンサイト

