解决方案 »

  1.   

    SELECT * FROM A WHERE NAME IN
      (SELECT B.NAME FROM B WHERE B.NAME ='TEST'
      );
    如果改成这样就不行了
    SELECT * FROM A WHERE NAME IN
      (SELECT NAME FROM B WHERE NAME ='TEST'
      );
    明显上面的NAME字段都是表A中的。
    个人觉得和下面写法效果一样
      SELECT NAME,AGE FROM A,B
    但是如果B表中也有NAME字段
    SELECT * FROM A WHERE NAME IN
      (SELECT NAME FROM B WHERE NAME ='TEST'
      );
      SELECT NAME,AGE FROM A,B
    上面写法没有像下面写法一样报“未明确定义列”错误。表示不清楚这时候是查B中的NAME还是A中的NAME。
    求大神来一起讨论下。