Re: Left Outer Join Syntax
От | Tom Lane |
---|---|
Тема | Re: Left Outer Join Syntax |
Дата | |
Msg-id | 5134.1092498264@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Left Outer Join Syntax (Steve Tucknott <steve@retsol.co.uk>) |
Ответы |
Re: Left Outer Join Syntax
|
Список | pgsql-novice |
Steve Tucknott <steve@retsol.co.uk> writes: > How do I include the join of table F to table D where F.colD = D.colF in > the case where 1) F is a LEFT OUTER and 2) where F is plain (INNER?) > join I think you just want to parenthesize the join constructs: (a left join (f left join d on somecondition) on somecondition) or (a left join (f join d on somecondition) on somecondition) However you need to be clear in your mind about the semantic behavior you want before you can pick a join order, and your question certainly didn't give enough detail for anyone to offer advice. In either one of the above examples, D rows that don't have a join partner in F will disappear before they get to the A join, resulting in different results than you had before --- that is, some A rows that were joined to D rows would now be extended with with nulls. If any of those rows make it to the final output then you will see a different and probably less useful answer. The short form of my point is that outer joins aren't associative and so the order in which you do them matters a lot. The reason JOIN is syntactically like an operator is so that you can control that ordering through parentheses. regards, tom lane
В списке pgsql-novice по дате отправления: