[Bast-commits] r6666 - DBIx-Class/0.08/trunk/lib/DBIx/Class
michaelr at dev.catalyst.perl.org
michaelr at dev.catalyst.perl.org
Sat Jun 13 22:23:15 GMT 2009
Author: michaelr
Date: 2009-06-13 22:23:15 +0000 (Sat, 13 Jun 2009)
New Revision: 6666
Modified:
DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm
Log:
Added documentation for from => $rs->as_query
Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm 2009-06-13 17:31:55 UTC (rev 6665)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm 2009-06-13 22:23:15 UTC (rev 6666)
@@ -3287,9 +3287,21 @@
# SELECT child.* FROM person child
# INNER JOIN person father ON child.father_id = father.id
-If you need to express really complex joins or you need a subselect, you
+You can select from a subquery by passing a resultset to from as follows.
+
+ $schema->resultset('Artist')->search(
+ undef,
+ { alias => 'artist2',
+ from => [ { artist2 => $artist_rs->as_query } ],
+ } );
+
+ # and you'll get sql like this..
+ # SELECT artist2.artistid, artist2.name, artist2.rank, artist2.charfield FROM
+ # ( SELECT me.artistid, me.name, me.rank, me.charfield FROM artists me ) artist2
+
+If you need to express really complex joins, you
can supply literal SQL to C<from> via a scalar reference. In this case
-the contents of the scalar will replace the table name asscoiated with the
+the contents of the scalar will replace the table name associated with the
resultsource.
WARNING: This technique might very well not work as expected on chained
More information about the Bast-commits
mailing list