奇怪的MySQL结果

时间:2010-09-01 15:24:52

标签: mysql

我在想,为什么查询

select * from (select * from users join users a) b

导致Duplicate column name错误?内部查询返回带有重复列的结果集,后缀为_1,外部查询显示表中的列。

2 个答案:

答案 0 :(得分:2)

这是正确的行为,因为子查询选择列表中的任何列都必须具有唯一的名称(Subqueries in the From Clause)。您也可以查看here,这是旧版mysql中的一个错误,允许您这样做。

答案 1 :(得分:0)

子查询中的列可能具有唯一的名称,因此执行此操作

select a.id, b.id, a.col1, b.col2, b.col3 from (select a.col1, a.id  from users join users a) b

其中id,col1,col2,col3是我组成的列名