[Dbix-class] outer join with explicit criteria rears its ugly head (again)

Nickolay Platonov nickolay8 at gmail.com
Tue Oct 14 18:36:20 BST 2008


May be smth like:

$c->model('DB::Book')->search({ 'bookuser.user_id' =3D> givenuser},{
   join =3D> 'bookuser'
});

where the 'bookuser' is the relationship defined like:

Book->belongs_to(
  "bookuser",
  "User",
  { id =3D> "user_id" },
  { join_type =3D> "LEFT OUTER" },
);

?

Sorry for "draftness", I just copied samples from my code.

On Tue, Oct 14, 2008 at 8:51 PM, Jason Gottshall <jgottshall at capwiz.com>wro=
te:

> Jason Gottshall wrote:
>
>> SELECT book.*, book_user.*
>> FROM book
>> LEFT OUTER JOIN book_user
>>  ON (    book_user.book_id =3D book.book_id
>>      AND book.user_id      =3D 'givenuser'
>>  )
>>
>
> michael reddick wrote:
>
>> The and "book.user_id =3D 'giveruser'" doesn't have to be in the ON
>> statement does it? You could just put it into the where clause and it sh=
ould
>> work the same.
>>
>
> Yeah, that's the first thing I tried, but it didn't work (on Oracle,
> anyway.) When I move the explicit criteria to the WHERE clause, I seem to
> lose the left-outer-ness of the join, and I only get back books for which
> the book_user table has a record. I'm stumped. Anyone else?
>
> Jason
>
>
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive:
> http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20081014/47e=
95e56/attachment.htm


More information about the DBIx-Class mailing list