网易这个怎么做的?

kacc850 发布于 2017/08/06 14:05
阅读 435
收藏 1

 

一个sql语句查询出 新闻列表和这条新闻下又多少条评论?

加载中
0
jsycwangwei
jsycwangwei

select a.news_name, b.size from news a, (select news_id, count(*) size from news_comment group by news_id) b

where a.news_id = b.news_id order by news_id desc limit 10

一般情况新闻列表和评论都会做缓存

0
公孙二狗
公孙二狗

SQL 多表联合查询

0
程序猿与程序媛
程序猿与程序媛
人家不一定是用一个sql 查询的,这个可以在后台处理数据,也可以多表关联
0
艾恩
艾恩
为什么一定要查询,做冗余字段也可以啊,做冗余表也可以啊,方案很多,看你需求
0
kacc850
kacc850

引用来自“Will--wang”的评论

select a.news_name, b.size from news a, (select news_id, count(*) size from news_comment group by news_id) b

where a.news_id = b.news_id order by news_id desc limit 10

一般情况新闻列表和评论都会做缓存

非常感谢你的sql 

你的意思是一般情况下 sql生成为html模板 然后缓存到前端是把?

jsycwangwei
jsycwangwei
对于关系结构缓存的。
0
kacc850
kacc850

引用来自“Will--wang”的评论

select a.news_name, b.size from news a, (select news_id, count(*) size from news_comment group by news_id) b

where a.news_id = b.news_id order by news_id desc limit 10

一般情况新闻列表和评论都会做缓存

查出有评论的新闻列表


select `img-public`.picid,`img-public`.title,`img-comment`.size from `img-public`, (select picid, count(*) size from `img-comment` group by picid) `img-comment`
where `img-public`.picid = `img-comment`.picid 

 

查询结果如下:

 

默认新闻表: 27条数据  有标题

默认新闻评论表:11条数据

 

上面查询结果是  凡事这个新闻有评论的 显示出来。

这样2个表的交集才显示

这样sql查询出来的列表只显示有评论的新闻列表 好多新闻开始没评论就显示不出来忇?

 

那么如果我想做

 

新闻标题1

       评论3

新闻标题2

      无评论

新闻标题3

      评论1

怎么办呢?

 

这样行不?

0
f
freezingsky

兄弟,那个肯定是冗余的,而且应该不是RMDB.

kacc850
kacc850
谢谢
0
PHPerKael
PHPerKael
一般都会做数据冗余的,数据量这么大,使用聚合函数对性能消耗会比较大
kacc850
kacc850
数据冗余怎么做啊
0
simplehpt
simplehpt

这种列表一般都是走搜索库,像这些数量之类的数据都是定时更新

kacc850
kacc850
就是做缓存了 定期更新?
返回顶部
顶部