DBIx :: Class做联合吗?

时间:2011-10-26 08:01:03

标签: sql perl dbix-class

除了使用视图和手动编写SQL之外,我还没有找到与DBIx::Class建立联合的方法。这对我来说很奇怪。我觉得应该有一些方法来结合两个ResultSet而不需要额外的工作,因为set加法和减法是SQL的核心部分。有没有更简单的工会方式?如果没有,为什么不呢?

2 个答案:

答案 0 :(得分:13)

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

my $rs1 = $rs->search({ foo => 'bar' });  
my $rs2 = $rs->search({ baz => 'biff' });  
for ($rs1->union($rs2)->all) { ... }

答案 1 :(得分:0)

作为一种解决方法(无需加载更多模块)我做了类似这样的事情:

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