Does DBIx::Class do unions?
Asked Answered
A

2

9

I haven't found a way to do unions with DBIx::Class other than using a view and writing out the SQL manually. This seems strange to me. I feel like there should be some way to union two ResultSets without a lot of extra work because set addition and subtraction are such a core part of SQL. Is there an easier way to do unions? If not, why not?

Aphrodite answered 26/10, 2011 at 8:1 Comment(0)
G
13

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

my $rs1 = $rs->search({ foo => 'bar' });  
my $rs2 = $rs->search({ baz => 'biff' });  
for ($rs1->union($rs2)->all) { ... }
Gemmagemmate answered 26/10, 2011 at 13:55 Comment(0)
J
0

As a workaround (without having to load more modules) I did something like this:

$db->resultset("Foo")->search({ -or => [ 
                                        'me.id' => { -in => $result_set_a },
                                        'me.id' => { -in => $result_set_b } 
                                       ]
                              },
                              undef);
James answered 2/5, 2013 at 14:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.