如何使用DBIx :: Class进行子选择?

Dav*_*slv 4 perl perl-module dbix-class

我从DBIx :: Class开始,我有一个想要在DBIx :: Class中的子选择,但我感到困惑,无法构建代码.

我的MySQL选择是这个:

Select name from tblCategory where id = (
    Select id from tblCategory where id = (
         Select id from tblRadio where name = "RFM"
    )
);
Run Code Online (Sandbox Code Playgroud)

我读到DBIx :: Class不支持subselect; 真的吗?如果是这样,你在这样的情况下做了什么?

dra*_*tun 6

根据DBIx::Class::Manual::Cookbook有一个新的子查询功能:

my $inside_rs = $schema->resultset('Radio')->search({ name => 'RFM' });

my $rs = $schema->resultset('Category')->search({
    id => { '=' => $inside_rs->get_column('id')->as_query },
});
Run Code Online (Sandbox Code Playgroud)

它是标记为实验所以YMMV.

但也注意到,SQL::AbstractDBIx::Class建筑公司查询时,确实有使用-nest一个新的子查询功能使用.