php - MySQL数据库设计,获取点赞的人数

查看:330
本文介绍了php - MySQL数据库设计,获取点赞的人数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

有三个表

document 文档表
ding 中间表 有两个字段一个是文档id 一个是会员id
member 会员表

如果在单个文档获取点赞的会员列表,非常简单。但是如果在文档列表里面显示点赞的会员列表该怎么写sql语句呢?

我用是yii2框架,我现在的思路是先获取十条文档数据提取里面的id,然后到ding模型中使用with获取到uid,不过这个时候只是uid,并没有用户的信息,昵称头像什么的,我想再获取头像信息。那么我就想直接用for循环循环这十条数据,获取用户的信息,然后再分配到数组里面。不过这样好像很麻烦啊。

解决方案

楼主的在for循环中在去member表中查询用户的具体信息(头像,昵称之类)做法不可取。可以向楼上说的那样,在关联表中存入文档id和会员id的同时,存入用户的个人信息(你想取的数据),但是这种方式会带来问题(不灵活。比如我之前只想去会员的昵称。但是我现在想取会员的头像就会很不方便。)
建议做法:依然使用楼主的这种建表方式:
查询语句如下:

SELECT
    a.*, GROUP_CONCAT(m.nickname) as nickname,
    GROUP_CONCAT(m.realname) as realname
FROM
    article a
LEFT JOIN article_member am ON am.article_id = a.id
LEFT JOIN member m ON m.id = am.member_id
GROUP BY
    a.id

可以得到对应的查询结果(每篇文章对应的点赞人数的昵称和真实姓名)

这篇关于php - MySQL数据库设计,获取点赞的人数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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