__PACKAGE__->has_one( 'related', 'Class', { 'foreign.a' => 'self.a',
'foreign.b' => 'self.b' } );
__PACKAGE__->might_have( 'related', 'Class', { 'foreign.a' => 'self.a'}, {
where => { 'foreign.b' => { '!=' => 'not needed' } }} );
PS: но если встречаются такие запросы, то проблема скорее всего не в
DBIx::Class, а в логике проекта, IMHO...2009/11/12 Alexander Q <[email protected]> > В Чтв, 12/11/2009 в 15:58 +0300, Андрей Костенко пишет: > > Спорим, флейма не будет?) > > 1. С DBIx::Class sql в коде не понадобится. Всё делается очень удобно > > и красиво > > 2. DBIx::Class очень быстрый, а последнее узкое место в нём (неXSные > > accessor-ы) исправят буквально на днях > > Ситуция такова: > > create table a ( > id integer primary key, > value text > ); > > create table b ( > id integer primary key, > value text > ); > > create table c ( > id integer primary key, > a integer references a(id), > b integer references b(id) > ); > > create table d ( > id integer primary key, > a integer references a(id), > b integer references b(id) > ); > > хочу спросить, SELECT * FROM c JOIN d ON c.a = d.a AND c.b = d.b; > и вот тут DBIx::Class мне не помощник вообще. > > Плох он так же в ситуации, когда я хочу > SELECT * FROM b LEFT JOIN a ON a.id = b.a AND a.value != 'not needed'; > > Я чего-то не знаю про DBIx::Class? Или это настолько редкие случаи, что > они не считают нужным такое поддерживать? > > -- > Alexander Q <[email protected]> > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
