日期:2014-05-16 浏览次数:20524 次
有2张表,结构如下:
?
家长表 genearch:
?
gid varchar2(4) primary key, gname varchar2(10)?
?
学生表 student:
?
stuid varchar2(4) primary key, sname varchar2(10) not null, gid varchar2(4)?
?
其中,student表中的字段gid是表genearch的外键.
?
现在有个小需求,student表中有些学生是没有家长的,要求查出student表中没有家长的学生信息.
?
以下是2个sql:
?
1. 使用IN查询
?
?
SELECT S.STUID, S.SNAME FROM STUDENT S WHERE S.GID IN (SELECT gid FROM GENEARCH);?
?
?
?2. 使用exists查询
?
?
SELECT S.STUID, S.SNAME FROM STUDENT S WHERE EXISTS (SELECT gid FROM GENEARCH WHERE s.gid=gid);?
建议使用exists查询,因为exists查询效率比IN查询要高,原因请参阅:
?
http://blog.csdn.net/lick4050312/article/details/4476333
?
?
?