DBIx :: Class объединяет? - PullRequest
       5

DBIx :: Class объединяет?

8 голосов
/ 26 октября 2011

Я не нашел способа объединения с DBIx :: Class , кроме использования представления и выписывания SQL вручную. Это кажется странным для меня. Я чувствую, что должен быть какой-то способ объединить два ResultSets без большой дополнительной работы, потому что сложение и вычитание набора являются такой основной частью SQL. Есть ли более простой способ делать союзы? Если нет, то почему?

Ответы [ 2 ]

13 голосов
/ 26 октября 2011

DBIx :: Class :: Helper :: ResultSet :: SetOperations

my $rs1 = $rs->search({ foo => 'bar' });  
my $rs2 = $rs->search({ baz => 'biff' });  
for ($rs1->union($rs2)->all) { ... }
0 голосов
/ 02 мая 2013

В качестве обходного пути (без необходимости загружать больше модулей) я сделал что-то вроде этого:

$db->resultset("Foo")->search({ -or => [ 
                                        'me.id' => { -in => $result_set_a },
                                        'me.id' => { -in => $result_set_b } 
                                       ]
                              },
                              undef);
...