一条关于评论查询并且用户是否点赞的SQL语句

5 篇文章 0 订阅

有一个用户表,一个评论表,还有一个点赞表。
现在需求是查询前十条是按点赞数排序的,后面20条按发表时间排序,然后查询评论内容,以及用户的部分信息,以及当前这个用户是否对该评论点赞了。

**like_comment(点赞表)**
uid         int  
ctime       datetime     
events_id   int 
**user(用户表)**
uid         int  
nickname    varchar  
rid         int  
icons       varchar  
email       varchar  
password    varchar  
sex         char     
birth       date     
city        varchar  
state       int  
ctime       datetime     
introduce   varchar  
note        varchar  
**events(评论表)**
cid         int  
rcid        int  
uid         int  
content     varchar 
likes       int 
feeling     double   
ctime       datetime     

查询的Sql语句:

(SELECT cid,content,like_events.uid as likeid,likes,`user`.nickname as authorname,`events`.uid as authorid,`events`.ctime
FROM `events`
LEFT JOIN `user` on `user`.uid = `events`.uid
LEFT JOIN like_events on events_id = cid AND like_events.uid = 1
ORDER BY likes DESC
LIMIT 10)
UNION
(
SELECT cid,content,like_events.uid as likeid,likes,`user`.nickname as authorname,`events`.uid as authorid,`events`.ctime
FROM `events`
LEFT JOIN `user` on `user`.uid = `events`.uid
LEFT JOIN like_events on events_id = cid AND like_events.uid = 1
ORDER BY `events`.ctime DESC
LIMIT 20
)

查询结果中 likeid为空就表示当前用户没有点赞该评论

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值