aliases break my query - Mailing list pgsql-sql

From Joseph Shraibman
Subject aliases break my query
Date
Msg-id 392DEB70.86A115E4@selectacast.net
Whole thread Raw
Responses Re: aliases break my query  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
These two queries are exactly alike. The first one uses aliases except
for the order by. The second uses aliases also for the order by. The
third uses whole names.  The third has the behavior I want.

Someone please tell me what I am doing wrong. I don't want to have to
use whole names for my query.

The data for the tables are at the end.


playpen=> select ta.a,ta.b,ta.c, (select count (tb.zz) where tb.yy =
ta.a) from tablea ta, tableb tb order by tablea.a;
a|b|c|?column?
-+-+-+--------
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       1
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       1
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       1
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       1
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       1
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       1
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       1
3|4|5|       0
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       1
4|5|4|       0
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       1
1|2| |       0
2|3|4|       0
3|4|5|       0
4|5|4|       0
(80 rows)

playpen=> select ta.a,ta.b,ta.c, (select count (tb.zz) where tb.yy =
ta.a) from tablea ta, tableb tb order by ta.a;
a|b|c|?column?
-+-+-+--------
1|2| |       0
1|2| |       0
1|2| |       0
1|2| |       0
1|2| |       0
2|3|4|       1
2|3|4|       1
2|3|4|       0
2|3|4|       0
2|3|4|       0
3|4|5|       0
3|4|5|       0
3|4|5|       1
3|4|5|       0
3|4|5|       0
4|5|4|       0
4|5|4|       0
4|5|4|       0
4|5|4|       1
4|5|4|       0
(20 rows)

playpen=> select tablea.a,tablea.b,tablea.c, (select count (tableb.zz)
where tableb.yy = tablea.a) order by tablea.a;
a|b|c|?column?
-+-+-+--------
1|2| |       0
2|3|4|       2
3|4|5|       1
4|5|4|       1
(4 rows)

playpen=> 
playpen=> select * from tablea;
a|b|c
-+-+-
1|2| 
2|3|4
3|4|5
4|5|4
(4 rows)

playpen=> select * from tableb;
yy|zz
--+--2| 42| 53| 94|145|15
(5 rows)


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Use of index in 7.0 vs 6.5
Next
From: Tom Lane
Date:
Subject: Re: aliases break my query