这是我得到的数据:
分类表
部门编号标题
---- ---- ---------
INFO 200 XXXXXX
INFO 343 111111
INFO 448 AAAAAA
教学台
用户名部门编号
A INFO 343
B INFO 343
D INFO 200
B INFO 200
A INFO 448
C INFO 200
C INFO 343
问题就来了:A和B都教什么课程?
我在想做这样的事情SELECT * FROM Class WHERE number = (...)
。
结果应为:
部门编号标题
---- ---- ---------
信息343 111111
如何编写正确的代码,请帮忙!谢谢。
答案 0 :(得分:0)
一种方法是
select c.dept, c.number, c.title
from class c
join teaches t on t.dept = c.dept
and t.number = c.number
where t.username in ('A','B')
group by c.dept, c.number, c.title
having count(distinct t.username) = 2
这将按类别对数据进行分组,然后仅考虑相关用户的记录。网上论坛需要同时有两个用户。