[Dbix-class] ping 'from' attribute doc author: you need to fix them

Brandon Black blblack at gmail.com
Wed May 10 22:18:53 CEST 2006

On 5/10/06, Matt S Trout <dbix-class at trout.me.uk> wrote:
> C<join> will usually do what you need and it is strongly recommended
> that you
> avoid using C<from> unless you cannot achieve the desired result using
> C<join>.
> And we really do mean "cannot", not just tried and failed. Attempting to use
> this because you're having problems with C<join> is like trying to use x86
> ASM because you've got a syntax error in your C. Trust us on this.
> Now, if you're still really, really sure you need to use this (and if you're
> not 100% sure, ask the mailing list first), here's an explanation of how
> this
> works.
> The syntax is as follows -
>    [
>      { <alias1> => <table1> },
>      [
>        { <alias2> => <table2>, -join_type => 'inner|left|right' },
>        [], # nested JOIN (optional)
>        { <table1.column1> => <table2.column2>, ... (more conditions) },
>      ],
>      # More of the above [ ] may follow for additional joins
>    ]
>    <table1> <alias1>
>    JOIN
>      <table2> <alias2>
>      [JOIN ...]
>    ON <table1.column1> = <table2.column2>
>    <more joins may follow>
> If people can look over that and verify that it (a) makes sense, and (b)
> is actually right, I'll commit that and it'll go out in the next release.

Did you mean to put parentheses on the indented joins in sql version
of that example, or not?  I have some rather complex cases of "FROM
foo JOIN (bar LEFT JOIN baz ON (x = y)) ON (a = b) JOIN baz ON (m =
n)" type stuff, which I think of as "nested joins" in SQL.  I only
ever do complex stuff in PostgreSQL, so far all I know I'm using
Pg-isms when I do that.  Or is that that the parens are
uneccesary/optional in most SQL dialects?

-- Brandon

More information about the Dbix-class mailing list