[Dbix-class] ping 'from' attribute doc author: you need to fix them
Matt S Trout
dbix-class at trout.me.uk
Thu May 11 04:40:23 CEST 2006
Brandon Black wrote:
> 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?
No, it's mostly that if you can't figure out that if the [JOIN ...] bit
is there then an extra bracket will be involved, you probably don't want
to use that feature :)
More seriously, I think it'd clutter the example syntax more than it'd
help anybody. I'm open to being dissuaded of this POV though.
More information about the Dbix-class
mailing list