> test=# select a.*, d.* from a as c, b as d where a.id=b.id;
> NOTICE: Adding missing FROM-clause entry for table "a"
> NOTICE: Adding missing FROM-clause entry for table "b"
> id | id
> ----+----
> 3 | 3
> 3 | 3
> 3 | 3
> 3 | 4
> 3 | 4
> 3 | 4
> (6 rows)
>
> Althoug c and d are aliases for a and b, the two tables are added to the
> list in the from clause. Is this the desired behaviour or is it a bug?
AFAIK this is the desired behavior. Once you've aliased the tables
you can't go back, there is no "a" or "b" any longer, just "c" and "d"
from those entries.