Re: Nested JOINs
От | Tom Lane |
---|---|
Тема | Re: Nested JOINs |
Дата | |
Msg-id | 25972.997999951@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Nested JOINs ("Josh Berkus" <josh@agliodbs.com>) |
Список | pgsql-sql |
"Josh Berkus" <josh@agliodbs.com> writes: > Second, you can't alias a JOINed set of tables; Actually you can, according to my reading of SQL92: <table reference> ::= <table name> [ [ AS ] <correlation name> [ <left paren> <derivedcolumn list> <right paren> ] ] | <derived table> [ AS ] <correlation name> [ <leftparen> <derived column list> <right paren> ] | <joined table> <derived table> ::= <table subquery> <table subquery> ::= <subquery> <subquery> ::= <left paren> <query expression> <right paren> <query expression> ::= <non-join query expression> | <joined table> <joined table> ::= <cross join> | <qualified join> | <left paren> <joined table><right paren> <qualified join> ::= <table reference> [ NATURAL ] [ <join type> ] JOIN <table reference>[ <join specification> ] So a parenthesized <qualified join> is a <derived table> and may be followed by [ AS ] <correlation name>. 7.1 gets this right. 7.0's very preliminary implementation of JOIN syntax did not. (It had a number of other bugs too, IIRC.) The spec's grammar is horribly badly written: it's ambiguous whether the parentheses should be parsed as part of a second-level <joined table> which would imply that a correlation name would NOT be accepted. It took a fair amount of work to derive a grammar that was unambiguous and still accepted everything... regards, tom lane
В списке pgsql-sql по дате отправления: