如何写这个SQL语句(100分)

  • 主题发起人 主题发起人 valatine
  • 开始时间 开始时间
V

valatine

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有两个表,一个为teacher,一个为student,两表为一对多关系。
其中teacher表的字段为teacherid,name,age,gender。teacherid为主关键字段
student表的字段为studentid,name age,gender,teacherid。 studentid为主关键字段
,teacherid为外部关键字段。两表通过teacherid相关联。
我现在想检索出所有姓“张”的老师,或者他所教的学生中有姓“张”的老师的情况
写了如下语句:
select * from teacher
where teacher.name like '张%'
or (student.name like '张%' and teacher.teacherid=student.teacherid)
但是结果总是不对。
 
select * from teacher
where teacher.teacherid=student.teacherid
AND (teacher.name like '张%' or student.name like '张%')
 


当然不对罗!
K 的方法好像也不对,至少语句不清楚。
正确的应该是:
select *
from teacher t
where exists
(select student.name from student where t.teacherid=student.teacherid and student.name like
'张%') or t.name like '张%'

是一个相关子查询的办法。条理较清。


 
好象你们两位的解答都不正确,不过我已经弄出来了。介于你们的精神可佳,各给50分吧!
我的做法是:
select * from teacher
where teacher.name like '张%'
or teacher.teacherid in (select student.studentid
where student.name like '张%')
 
多人接受答案了。
 
后退
顶部