架构:
学生(snum:整数,sname:char(30),major:char(25),level:char(2),age:integer)
Faculty(fid:integer,fname:char(30),deptid:integer)
Class(cname:char(40),meets_at:char(20),room:char(10),fid:integer | fid REFS Faculty.fid)
已注册(snum:integer,cname:char(40)| snum REFS student.snum,cname REFS class.name)
我想打印各级学生的水平和年龄 除了'JR'。我知道我可以用一种简单的方式应用这个查询。但是我想要联系我们
我的尝试:
select s.levels as Seniority,s.age as Age
from student s
where s.levels not in (
select a.levels
from student a
where a.levels='JR');
这不是给我预期的答案。我做错了吗?
答案 0 :(得分:0)
实际上,在这种情况下进行子查询或连接没有任何意义,只要您可以通过简单的查询来获取它。
SELECT level as Seniority, age as Age from student WHERE levels != 'JR'
它应该给你想要的输出。
答案 1 :(得分:0)
虽然我同意join
可能有点矫枉过正,但这看起来像是家庭作业,在这种情况下,您可能会被要求专门使用join
。这是我的尝试:
select distinct levels as Seniority, age as Age
from student
natural join
( select *
from student a
where a.levels != 'JR' );