--- trunk/lib/DBIx/Class/Manual/Cookbook.pod	2007-11-21 11:33:54.000000000 -0800
+++ /tmp/Cookbook.pod	2007-11-21 11:18:16.000000000 -0800
@@ -473,6 +473,44 @@
   my $tag = $rs->first;
   print $tag->cd->artist->name;
 
+=head2 Multi-step prefetch/join with specific columns
+
+To get the effect of a multi-step prefetch but with only specific
+columns, you'll need to do things a bit differently.  Because a
+C<prefetch> will automatically fetch all columns, you will have
+to use C<join> instead.  Use the C<select> attribute to specify the
+database columns to retrieve and the C<as> attribute to map them to
+their names for inflation.  Note that it is B<critical> within the
+C<as> attribute to reflect the nested join relationship using
+dot notation:
+
+  my $rs = $schema->resultset('Tag')->search(
+    {},
+    {
+      select => [
+        'me.tagid', 'me.cd',
+        'cd.cdid', 'cd.artist',
+        'artist.artistid', 'artist.name'
+      ],
+
+      as => [
+        'tagid', 'cd',
+        'cd.cdid', 'cd.artist',
+        'cd.artist.artistid', 'cd.artist.name'
+      ],
+
+      join => {
+        cd => 'artist'
+      }
+    }
+  );
+
+  # Equivalent SQL:
+  # SELECT me.tagid, me.cd, cd.cdid, cd.artist, artist.artistid, artist.name
+  # FROM tag me
+  # JOIN cd ON me.cd = cd.cdid
+  # JOIN artist ON cd.artist = artist.artistid
+
 =head1 ROW-LEVEL OPERATIONS
 
 =head2 Retrieving a row object's Schema
