我在想,为什么查询
select * from (select * from users join users a) b
导致Duplicate column name
错误?内部查询返回带有重复列的结果集,后缀为_1,外部查询显示表中的列。
答案 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是我组成的列名