美文网首页
MySql 之 left join 查询结果

MySql 之 left join 查询结果

作者: 朝闻道夕睡觉 | 来源:发表于2020-03-04 11:52 被阅读0次

班级表


image.png

学生表


image.png

那么现在有两个需求:

1:找出每个班级的名称及其对应的女同学数量
2:找出一班的同学总数

-- 1.找出每个班级的名称及其对应的女同学数量
SELECT c.name, count(s.name) as num FROM classes c left join students s 
on s.class_id = c.id and s.gender = 'F'
group by c.name
image.png

如果想对右表进行限制,则一定要在on条件中进行,若在where中进行则可能导致数据缺失,导致左表在右表中无匹配行的行在最终结果中不出现;(即使右表中没有数据也要补0进行显示)

-- 2:找出一班的同学总数

 SELECT c.name, count(s.name) as num FROM classes c left join students s
 on s.class_id = c.id where c.name = '一班'  group by c.name
image.png

如果想对左表进行限制,则一定要在where条件中进行;(右表中没有符合条件的数据,则不显示)

相关文章

网友评论

      本文标题:MySql 之 left join 查询结果

      本文链接:https://www.haomeiwen.com/subject/ngdmlhtx.html