我有3张桌子:
我有一个任务,给定两个t_id,找到这两位老师教过的普通学生。
是否可以在严格的SQL中完成此操作?如果不是,我可能会尝试根据不同的老师单独检索学生记录,并搜索以查看他们共有的学生。对于似乎可以为。编写SQL查询的东西来说,这似乎有点过分。
答案 0 :(得分:2)
你可以自我加入为两位老师招收学生。
{{1}}
答案 1 :(得分:1)
select s_id
from student a
inner join teaching b on a.s_id = b.s_id
where t_id = 'First give t_id'
INTERSECT
select s_id
from student a
inner join teaching b on a.s_id = b.s_id
where t_id = 'Second give t_id'
这与MS DB有关,但可能与其他人无关。
select s_id
from student a
inner join teaching b on a.s_id = b.s_id
where b.t_id = 'First give t_id'
and s_id in (
select s_id
from student c
inner join teaching d on c.s_id = d.s_id
where d.t_id = 'Second give t_id'
)
第二个应该适用于任何数据库。