Mysql 我如何创建一个查询,列出上课少于三节课或上课时间为空的学生的姓名
我有一个数据库,有两个表,一个学生,一个注册。学生表有stuid、lastname、firstname。登记表有stuid classnumber和grade 我必须返回一个如下所示的列表 姓 灼伤 琼斯 李 麦卡锡 里维拉 史密斯 名字 爱德华 玛丽 佩里 欧文 简 汤姆 我试图做这样的陈述 选择lastname,firstname 如果不存在,则从enroll e中选择stuid,其中e.stuid=s.stuid 计数*小于3的 按姓、名分组 我知道我需要两个表来合并这两个表,这样我就可以得到班数<3的人和当前没有参加某个班的人的结果 试着这样做:Mysql 我如何创建一个查询,列出上课少于三节课或上课时间为空的学生的姓名,mysql,sql,Mysql,Sql,我有一个数据库,有两个表,一个学生,一个注册。学生表有stuid、lastname、firstname。登记表有stuid classnumber和grade 我必须返回一个如下所示的列表 姓 灼伤 琼斯 李 麦卡锡 里维拉 史密斯 名字 爱德华 玛丽 佩里 欧文 简 汤姆 我试图做这样的陈述 选择lastname,firstname 如果不存在,则从enroll e中选择stuid,其中e.stuid=s.stuid 计数*小于3的 按姓、名分组 我知道我需要两个表来合并这两个表,这样我就可以
SELECT lastname, firstname FROM student st LEFT JOIN enroll el
ON st.stuid = el.stid
WHERE (el.classnumber < 3 OR el.classnumber IS NULL)
where子句必须位于from子句之后。那就试试这个
select firstname , lastname
from student s join enroll e
on s.stuid = e.stuid
Where e.classnumber < 3 and e.classnumber is null
使用左连接并具有
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