| Bug #23182 | Got an error when using aliases in a view, thought the select works | ||
|---|---|---|---|
| Submitted: | 11 Oct 2006 16:18 | Modified: | 15 Dec 2006 22:24 |
| Reporter: | Katalin Hornyik | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server | Severity: | S1 (Critical) |
| Version: | 5.0.27-BK, 5.0.24a | OS: | Linux (Linux app 2.6.18 ) |
| Assigned to: | Evgeny Potemkin | CPU Architecture: | Any |
[11 Oct 2006 16:18]
Katalin Hornyik
[11 Oct 2006 16:21]
Katalin Hornyik
I forgot the information: it's about the table aliases.
[11 Oct 2006 16:26]
Katalin Hornyik
create or replace view almakorte as select alma.id , alma.myfield - coalesce(sum(korte.myfield), 0) as x from t1 as alma left join t2 as korte on alma.id=korte.id group by alma.id, alma.myfield; SELECT * FROM almakorte a; /* Column 'myfield' in field list is ambiguous*/
[12 Oct 2006 14:28]
Valeriy Kravchuk
Thank you for a bug report. Verified just as described with 5.0.27-BK on Linux.
openxs@suse:~/dbs/5.0> bin/mysql -uroot test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.27-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> drop table t1, t2;
Query OK, 0 rows affected (0.00 sec)
mysql> create table t1 (id int, myfield int);
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> create table t2 (id int, myfield int);
Query OK, 0 rows affected (0.01 sec)
mysql> create or replace view almakorte as
-> select alma.id , alma.myfield - coalesce(sum(korte.myfield), 0) as x
-> from
-> t1 as alma left join t2 as korte on alma.id=korte.id
-> group by alma.id, alma.myfield;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT * FROM almakorte a;
ERROR 1052 (23000): Column 'myfield' in field list is ambiguous
mysql> create or replace view t1t2 as
-> select t1.id , t1.myfield - coalesce(sum(t2.myfield), 0) as myfield
-> from
-> t1 left join t2 on t1.id=t2.id
-> group by t1.id, t1.myfield;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT * FROM t1t2 t;
Empty set (0.01 sec)
[15 Dec 2006 22:24]
Evgeny Potemkin
Can't repeat. Tested on 5.0.32-debug version.
