* 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