LEFT OUTER JOIN

DBICで左外部結合をするには、スキーマクラスで通常以下のようにリレーション指定する所を、

 package MyApp::Schema::Result::Goods;
 use base 'DBIx::Class';
 __PACKAGE__->belongs_to(category => 'MyApp::Schema::Result::Category', 'category_id');

以下のように、join_typeを加える。

 package MyApp::Schema::Result::Goods;
 use base 'DBIx::Class';
 __PACKAGE__->belongs_to(category => 'MyApp::Schema::Result::Category', 'category_id', { join_type => 'left'});

これで以下のようなSQLが実行されることになる。

 SELECT * FROM goods me LEFT JOIN category category ON category.category_id = me.category_id:

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2009-09-30 (水) 04:16:56