关于一个简单的SQL语句

写SQL语句时遇到这样一个问题:
select a.* from
(
select u.id, u.name, g.name
from app_user u, app_group g
where u.id > 13987
and u.deptid = g.id
order by u.id
) a

括号里的查询是可以执行的,但现在整个句子是执行不了的,报错说列含糊不清,应该是指a.*,我如果换成a.id是可以执行的。我就不明白了,我记得以前写a.*是可以执行的啊,这是为什么呢?

它搞不清你要u.name还是g.name,对外部来说都叫name ,加个别名就可以了。

楼上说的对.