select * from(select * from a,b where a.schoolno = b.schoolno)as abc;
结果报错:Duplicate column name 'SchoolNO'请问这里是哪里出错了,如果把子查询里面的*号改成某些字段,这个查询就不会错,但我现在是想返回子查询里面的所有字段,请问该怎么写

解决方案 »

  1.   

    a,b 表中都有SchoolNO,用别名
    select * from (
    select a.SchoolNO as a1,b.SchoolNO as b1,... from a,b where a.schoolno = b.schoolno) as abc;
    orselect * from a,b where a.schoolno = b.schoolno
      

  2.   

    那是因为啊a,b两表中都有SchoolNO列
      

  3.   

    大哥 ...我怎么觉得你前面的那个select * from 与 最后的as abc 都是多余的?小弟费解...求解释  = =||
      

  4.   

    改为如下即可。
    select * from (select * from a inner join b using(schoolno))as abc;
      

  5.   

    另外select * from(select * from a,b where a.schoolno = b.schoolno)as abc;这个语句结果等同于 select * from a,b where a.schoolno = b.schoolno , 为什么不直接使用这二种方式,这个在效率上比较高。
      

  6.   

    你的语句可以化解为elect * from a,b where a.schoolno = b.schoolno;你的错误是因为列名有重复
      

  7.   

    当初思路没搞对,以至于整出这么个sql语句。
    感谢各位的解答。结贴,给分