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?
Does DBIx::Class do unions?
Asked Answered
DBIx::Class::Helper::ResultSet::SetOperations
my $rs1 = $rs->search({ foo => 'bar' });
my $rs2 = $rs->search({ baz => 'biff' });
for ($rs1->union($rs2)->all) { ... }
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);
© 2022 - 2024 — McMap. All rights reserved.