oracle 透过明细表查询主表(返回主表记录)

oracle 通过明细表查询主表(返回主表记录)
主表: 班级ID  班级名称
              1               班级1
               2              班级2

细表: 学生ID   班级ID   学生姓名
              1               1           张三
              2               1           李四
              3               2           王五

通过张三 或李四就能查到班级1 只返回一条记录(即只返回主表的一条记录)别用in语句 ,exists比in高效,但不好组合,有没有其他高效的语句!
------解决方案--------------------
不知道。。。。。。。。。。。。。。。。
------解决方案--------------------
in和exists的查询计划是一样的。

自己看看执行计划就知道了,网上说的很多优化语句都是扯淡。或者应该是版本极低的数据库遗留的经验。

微软的算法水平还不至于低到需要开发人员决定大表连小表用in,小表连大表用exists。
 
------解决方案--------------------
SELECT 班级ID,班级名称 FROM A WHERE EXIST (SELECT * FROM B WHERE A.班级ID =B.班级ID  and b.学生姓名='张三' )  
试试
http://blog.csdn.net/zhiweianran/article/details/7868894参考
------解决方案--------------------
ldn 恩,NB。。。。。。。。。。。。。。。。。。