下面的SQL语句中,子查询中出现了上层查询的表的别名AA。
请问,如何改写才能查询到同样的结果而且让子查询中不出现AA?SELECT AA.column1, AA.column2, AA.column3, AA.column4
  FROM T_table1 AA
 WHERE AA.column5 = '0'
   AND AA.column1 = 'cln1'
   AND 'abc' = (SELECT DISTINCT BB.column4
                  FROM T_table2 BB
                 WHERE BB.column1 = AA.column1
                   AND BB.column2 = AA.column2
                   AND BB.column3 = '0');

解决方案 »

  1.   

    把所有的AA改成CC就不会有AA了;或者把数据库的sql解析器改改;要不咱们自个攒个数据库。呵呵。有AA为什么不行那。
      

  2.   

    SELECT AA.column1, AA.column2, AA.column3, AA.column4 
      FROM T_table1 AA ,T_table2 BB 
    WHERE AA.column5 = '0' 
      AND AA.column1 = 'cln1' 
    and BB.column1 = AA.column1 
    and BB.column2 = AA.column2 
    AND BB.column3 = '0'
    and BB.column4 = 'abc'
      

  3.   

    select column1,column2,column3,column4 from T_table1 a
    where column5 = '0' and column1 = 'cln1' and exists
    (select 'abc' from T_table2 where column1=a.column1 and
        column2 = a.column2 and column3 = '0' and column4='abc')