当前位置: 首页 > news >正文

枞阳做网站柳州学校网站建设

枞阳做网站,柳州学校网站建设,上海市安全生产建设协会网站,自己怎么开发游戏软件关于连表 查询两个表 SELECT * FROM study_article JOIN study_article_review 查询的就是两个表相乘,结果为两个表的笛卡尔积 相这样 这种并不是我们想要的结果 通常会添加一些查询条件 SELECT * FROM study_articleJOIN study_article_review ON study_art…

关于连表

查询两个表

SELECT *
FROM `study_article`
JOIN study_article_review 

查询的就是两个表相乘,结果为两个表的笛卡尔积

相这样

这种并不是我们想要的结果

通常会添加一些查询条件

SELECT *
FROM `study_article`JOIN study_article_review ON study_article.id=study_article_review.article_id

查询结果为

那么就会查询id=article_id的数据

左外连接,就是主表都查询出来,然后右表根据条件匹配

sql

SELECT *
FROM `study_article`
LEFT JOIN study_article_review ON study_article.id=study_article_review.article_id

相比于上面这种把主表的数据都查出来了

分组查询,就是对某一列的数据的相同的分组 group by 这一列

查询文章列表,并且查询每条文章的评论数

sql语句

SELECT study_article.id, study_article.content, study_article.title, study_article.url, count(study_article.id) AS count
FROM `study_article`
LEFT JOIN study_article_review ON study_article.id=study_article_review.article_id
GROUP BY study_article.id

然后这样的查询结果为

因为文章和评论属于1对多的关系,左外连接评论表就会产生许多多余的文章数据,所以要对文章id进行分组,然后统计文章id的数量就是这个文章的评论数量

2024 11.20 补充 虽然上面连表分组查询也可以,但是太过于麻烦,并且扩展性不太好

,如果我们要查询文章表的点赞数和评论数 就相当于文章表既要连接评论表统计评论数量,又要连接点赞表统计点赞表的数量,就相当于文章表要 left join 两次,当然也可以这样

select a.*,count(study_star.obj_id) as liked from 
(
SELECT study_article.id, study_article.content, study_article.title, study_article.url, count(study_article_review.article_id) AS reviewCount
FROM `study_article`
LEFT JOIN study_article_review ON study_article.id=study_article_review.article_id
GROUP BY study_article.id
) as a
left JOIN study_star on a.id=study_star.obj_id
GROUP BY a.id

就是先文章表左外连接评论表统计出评论数目 文章id分组,然后在把这个查询出来的表作为子查询

再左外连接点赞表统计出点赞的数量 id分组

虽然也可以实现但过于复杂

第二种方法

SELECT 
study_article.id, study_article.content, study_article.title, study_article.url,
(SELECT COUNT(1) FROM study_article_review where article_id=study_article.id) as reviewCount,
(SELECT COUNT(1) FROM study_star where study_star.obj_id=study_article.id) as likedFROM study_article

把子查询放到select之后分别查询点赞量和评论量,这样子扩展性大大提升 结果一样

查询父级评论列表,并查询该父级评论的子评论数量

要查询评论的子评论数量条件是pid等于父级评论的id

可以连表,自身连接自身条件为第一张表的id等于第二张表的pid,查询父级评论为

SELECT * FROM study_article_review as s1
left JOIN  study_article_review as s2  on s1.id=s2.pid
WHERE s1.pid=0

由于一个评论有很多回复属于一对多连接,对第一个表id分组,聚合查询回复数量

SELECT s1.*,count(s2.pid) AS reviewCount FROM study_article_review as s1
left JOIN  study_article_review as s2  on s1.id=s2.pid
WHERE s1.pid=0
GROUP BY s1.id

结果

http://www.yayakq.cn/news/891325/

相关文章:

  • 济宁贵网站建设建设网站架构服务器需要多少钱
  • 南阳网站建设与管理佛山网站建设方案
  • 酒水销售网站中山做网站推广公司
  • 项城市建设规划局网站成都公司注册价格
  • 怎么弄一个网站网站备案的重要性
  • 网站建设项目开发书天坛整装公司地址在哪里
  • 图片站wordpress河北建设工程信息网下载时间
  • 查看网站开发语言商业性质网站建设步骤
  • 采集网站后台数据低代码开发技术
  • 做网站域名的公司南阳网站建设培训学校
  • 网站建设宝安国外网站搜索引擎优化方案
  • 前端案例的网站wordpress博客功能
  • h5网站做微信小程序做淘宝网站销售怎么样
  • 电子商务网站建设的心得体会男女做羞羞事的网站
  • 建站软件大全外贸流程询盘发盘
  • 如何查看网站域名信息html网站开发代码
  • wordpress主题图片修改seo入门视频
  • 国外做问卷赚购物券等的网站怎么判断网站的好坏
  • 西安 内部网站建设免费网页注册
  • 网站开发公司哪家最强网站权重如何做
  • 骨骼型的网站天津网站建设基本流程
  • 外包建设网站服务电子商务网站开发规划
  • o2o网站策划集团官网及站群网站建设
  • 17网站一起做网店揭阳网站建设编写代码出错
  • 网站seoapp郑州新密网站建设
  • 深圳市住房和建设网站做调研有哪些网站
  • 网上商城采购流程网站seo课程
  • 一家只做正品的网站微信电商平台有哪些
  • 校园网站规划与建设心得wordpress搬家config文件
  • 泉州 网站建设公司首选wordpress 博客多人