[Symfony] Criteria でテーブルに別名を指定する

Ty

こんばんは、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);

[symfony join as 別名]

投稿日:08年09月25日 21:16:03

トラックバックURL

コメントする

名前

メールアドレス

URL

コメント (HTMLは使えません)