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。 求大神来一起讨论下。
(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。
求大神来一起讨论下。