* LEFT OUTER JOIN [#y19cc321]

DBICで左外部結合をするには、スキーマクラスで通常以下のようにリレーション指定する所を、
 package MyApp::Schema::Result::Goods;
 use base 'DBIx::Class';
 __PACKAGE__->belongs_to(category => 'MyApp::Schema::Result::Category', 'category_id', { join_type => 'left'});
 __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:

** 参考 [#z2306c3e]
- http://search.cpan.org/perldoc?DBIx::Class::Relationship
- クエリー実行時に「FROM」内の「-join-type」で指定する方法もあるようだが↓、分かりづらい?
- http://search.cpan.org/perldoc?DBIx::Class::ResultSet

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