这个问题与我们的班级数据库有关,它要求我们“列出所有在商业大楼有办公室但不在商业大楼授课的教师”。
我的前两个查询正确地找到了那三个在巴士上有办公室的教师,我的最后一个查询自己找到了那些不在商业大楼里教书的人,但是当它们组合在一起时,我希望它能缩小到一个教师,相反,它会产生我的前两个查询语句的结果。
我已经尝试了下面的代码以及多个变体+连接变体,并得到了它产生两个名称,而不是当前的三个,但从来没有只是我所追求的一个。我搜索了一些相关的帖子,并尝试了一些他们的解决方案,但没有一个为我工作。
从原始数据来看,我知道应该填充最终查询的唯一名称是Jerry威廉姆斯(f_id 3),但是,我不知道如何使用两个必要的where子句来确保教师在公共汽车大楼里有他们的办公室,并且他们不在公共汽车大楼里教书。
我认为它应该返回Jerry威廉姆斯,因为我的最后一个where语句包含一个and语句来过滤我正在寻找的结果。相反,它只包含上面查询的结果,其中指出了三个在巴士大楼里有办公室的教师。
教师表数据faculty
位置表数据location
Course_section表数据course_section
下面是我的当前代码(上面包含的数据):[当前mysql脚本][1] [1]:https://i.stack.imgur.com/Uv5Ed.png
选择f_first,f_last from faculty where loc_id in(选择loc_id from location where bldg_code in(选择bldg_code from course_section where(bldg_code =“BUS”)and(loc_id〈〉5 and loc_id〈〉6 and loc_id〈〉7 and loc_id〈〉8)))
1条答案
按热度按时间jucafojl1#
INNER JOIN
只保留在业务大楼工作的教员,然后WHERE
子句检查……未检测。