mysql的左联查询,右表某字段为空的时候,为什么左表对应的字段也查不出来?

发布于 2022-09-05 00:27:40 字数 394 浏览 11 评论 0

SELECT category.c_id,category.c_name,jobs.amount FROM qs_category as category 
LEFT JOIN qs_jobs as jobs ON category.c_id=jobs.trade 
WHERE jobs.addtime >= 1483200000 AND jobs.addtime <= 1498838400 

这是查询语句,左表category是分类表,右表jobs是职位表,我想统计出每个分类下职位的数量。
但是结果有点问题,如果某个分类在职位表的分类字段里不存在,也就是说这个分类下没人添加过职位,那么查询结果中这个分类也不会显示。
但是按理说如果左联的话,右表就算没有对应的数据,左表的字段也应该显示的啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

再可℃爱ぅ一点好了 2022-09-12 00:27:40

你where条件写的右边的表,当然查不出来拉,右表为空的时候条件字段也为空,被你where筛选掉了。

自此以后,行同陌路 2022-09-12 00:27:40

我也遇到过这种情况,是你的where条件筛选掉了。解决办法,把写在where里的条件追加在on里面!
where是对连表后的结果集进行筛选,但是on里面的条件如果为假,左表的数据会返回,右表全为空

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文