php - 一个sql查询问题

查看:80
本文介绍了php - 一个sql查询问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我想通过文章的评论量来排序查询出评论量前5的文章出来,有两张表,文章表和
评论表,之前用的是内连接,得到的都是的公共部分,所以筛选出来的结果必须是有评论量,如果评论量为0,则什么都查询不出来,我要的不是这样的结果,我的需求是就算评论量为0要可以参与排序,网上查了一下,应该要用全连接,但是目前报错,同时做了个测试,似乎所有的全连接都会报错
下面的代码用的是thinkphp
$hotArticle = $articleModel->join('sys_comment on sys_comment.article_id=sys_article.article_id','FULL')->field('sys_article.,count() as num')->group('sys_article.article_id')->order('count(*) desc')->limit(5)->select();

解决方案

不需要全连接,也就是comments没有对应article的算垃圾数据,用外联接就行,如果可以是sys_article left join sys_comment也可以写成sys_comment right join sys_article
也就是以sys_article为主表

所以你将Full 改为Left试试

这篇关于php - 一个sql查询问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆