我有一个“数据库”,有两个学生表,并注册。学生表有stuid,姓氏,名字。登记表有类似的班级和等级。
我必须返回一个看起来像这样的列表
姓氏
伯恩斯
琼斯
背风处
麦卡锡
里维拉
史密斯
名字
爱德华 玛丽 佩里 欧文 简 汤姆
我试图做这样的声明
Select lastname, firstname
Where Not exists (Select stuid from enroll e where e.stuid = s.stuid)
Having count(*) < 3
Group By lastname, firstname;
我知道我需要两个基本合并这两个表,以便我得到有类&lt;的人的结果。 3和目前还没有上课的人。
答案 0 :(得分:1)
使用LEFT JOIN
和HAVING
SELECT st.stuid, lastname, firstname
FROM student st
LEFT JOIN enroll el ON st.stuid = el.stuid
GROUP BY st.stuid
HAVING count(el.stuid) < 3
答案 1 :(得分:0)
试试这样:
SELECT lastname, firstname FROM student st LEFT JOIN enroll el
ON st.stuid = el.stid
WHERE (el.classnumber < 3 OR el.classnumber IS NULL)
答案 2 :(得分:0)
你的&#34; where子句&#34;需要遵循你的&#34; from条款&#34;。试试吧!
select firstname , lastname
from student s join enroll e
on s.stuid = e.stuid
Where e.classnumber < 3 and e.classnumber is null