Re: [SQL] table aliasing problem with 6.5...

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [SQL] table aliasing problem with 6.5...
Дата
Msg-id 11578.934034693@sss.pgh.pa.us
обсуждение исходный текст
Ответ на table aliasing problem with 6.5...  (Howie <caffeine@toodarkpark.org>)
Ответы Re: [SQL] table aliasing problem with 6.5...  (Bruce Momjian <maillist@candle.pha.pa.us>)
Re: [SQL] table aliasing problem with 6.5...  (Bruce Momjian <maillist@candle.pha.pa.us>)
Список pgsql-sql
Howie <caffeine@toodarkpark.org> writes:
> (1) why is it trying to do a cartesian join when not using the aliased
>     tables?

That's what it's supposed to do.  When you provide an alias for a table
name in FROM, then as far as the rest of that query is concerned, that
alias *is* the name of the table --- it has no other.  When you refer
to the original table name in the WHERE clause, that's taken as creating
a separate table reference that's implicitly added to FROM.  Your query
is a four-way join with only one join having a restriction clause :-(

The alias behavior is necessary in order to handle self-joins properly,
for example to find married couples:   SELECT * FROM person, person other WHERE person.spouse = other.spouse;
This would be ambiguous if "person" were exposed by the second FROM clause.
SQL92 requires it to work this way:
        <table reference> ::=               <table name> [ [ AS ] <correlation name>                   [ <left paren>
<derivedcolumn list> <right paren> ] ]
 
...
        1) A <correlation name> immediately contained in a <table refer-           ence> TR is exposed by TR. A <table
name>immediately contained           in a <table reference> TR is exposed by TR if and only if TR           does not
specifya <correlation name>.
 


I think that implicitly adding a table to FROM is a Postgres extension
not found in SQL92 --- we probably really ought to reject such a query
with an error, since this behavior seems to be surprising...
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: Howie
Дата:
Сообщение: table aliasing problem with 6.5...
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [SQL] table aliasing problem with 6.5...