The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

DBIx::DataModel::Schema::ResultAs::Subquery - SQL and bind values in a form suitable for a subquery

SYNOPSIS

# subquery to be used in an IN clause
my $subquery = $source1->select(..., -result_as => 'subquery');
my $rows = $source2->select(
-columns => ...,
-where => {foo => 123, bar => {-not_in => $subquery}}
);
# subquery to be used in a SELECT list
my $subquery = $source1->select(..., -result_as => [subquery => 'col3']);
my $rows = $source2->select(
-columns => ['col1', 'col2', $subquery, 'col4'],
-where => ...
);

DESCRIPTION

Returns a ref to an arrayref containing \["($sql)", @bind]. This is meant to be passed to a second query, for example through the -in or -not_in operator of SQL::Abstract, or as a column specification in the select list.

When used in the form -result_as => [subquery => $alias], the alias is added as a column alias, following the syntax specified in "column_alias" in SQL::Abstract::More.