日期:2014-05-16  浏览次数:20758 次

ORACLE中sql语句问题,麻烦大侠给指点一下!
直接上例子:
table A,字段:MSG_NO,SERV_ID,SERV_NAME
table B,字段:SERV_ID,SERV_DESC
sql语句:SELECT * FROM A WHERE A.SERV_ID IN(SELECT MSG_NO FROM B)返回的是A表全量
单独运行括号内的sql,提示MSG_NO字段不存在,但是为什么整句运行时不会报错呢?
虽然我知道是自己偷懒导致的,但是括号内不是相当于一个独立存在的sql么?

------解决方案--------------------
没写错吧 不是SELECT SERV_ID FROM B么?

表b根本不存在MSG_NO ,SELECT MSG_NO FROM B怎么会不报错呢
------解决方案--------------------
外层表的列在内层子查询中可以被使用