9

除了使用视图并手动写出 SQL 之外,我还没有找到与DBIx::Class进行联合的方法。这对我来说似乎很奇怪。我觉得应该有某种方法可以将两个 ResultSet 合并,而不需要做很多额外的工作,因为集合加法和减法是 SQL 的核心部分。有没有更简单的方法来做工会?如果不是,为什么不呢?

4

2 回答 2

13

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

my $rs1 = $rs->search({ foo => 'bar' });  
my $rs2 = $rs->search({ baz => 'biff' });  
for ($rs1->union($rs2)->all) { ... }
于 2011-10-26T13:55:10.250 回答
0

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

$db->resultset("Foo")->search({ -or => [ 
                                        'me.id' => { -in => $result_set_a },
                                        'me.id' => { -in => $result_set_b } 
                                       ]
                              },
                              undef);
于 2013-05-02T14:21:13.587 回答