MySql 之 left join 查询结果

MySql 之 left join 查询结果,第1张

班级表

学生表

那么现在有两个需求:

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

2:找出一班的同学总数

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

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

项目中某个业务列表查询发现速度略慢,看了下sql只是正常的关联查询,并且是小表驱动大表了,explain分析一下之后发现居然是全表扫描

导致该问题的原因是关联字段类型不一致,导致索引失效,我们看一下关联字段的字符集

执行修改语句,将关联字段字符集调整为一致

ALTER TABLE groupon_goods_info CHANGE goods_info_id VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci

修改之后的查询速度


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8596629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存