起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1375|回复: 2

[结贴] 同一张表,如何查询好友编号及该编号的好友数

[复制链接]

73

主题

345

帖子

1695

积分

金牌会员

Rank: 6Rank: 6

积分
1695
QQ
发表于 2017-3-8 09:47:40 | 显示全部楼层 |阅读模式
本帖最后由 kenminkajp 于 2017-3-8 09:51 编辑

friend20170308101725.png
如图,页面要显示某人的好友清单及各个好友的好友数
表结构示意如下:
NO
UID
friendUID

同一张表,先用获得的参数UID查询到好友friendUID清单,再用UID=friendUID查询该UID的好友数


需求:想通过调用java的方法来查询数据,在页面上用loadData来获得返回的参数。
返回应当是两列数组{UID , countUID}
请问:
1、怎么实现比较理想
2、有没有一个SQL就可以实现查询UID及该UID的好友数




发表于 2017-3-8 11:14:09 | 显示全部楼层
你的表结构是这样设计的吧!专门用一个表来存放好友关联,就是两个人的id进行关联
UID  和 friendUID  两个字段都是存储了两个人的id
如果说这两个字段的区别是什么??唯一的解释就是 谁先加谁为好友的,
如果A加 B 为好友,则UID存储 A 用户的id, friendUID存储B用户的 id  ,是这样的吗??
如果是这样的话!UID 和 friendUID 都有可能是 某个用户的id值!  这也是两个用户之间唯一对应的关系!

如果是根据好友的UID 去查询他的好友数,一个sql语句就可以搞定
select  count(*)  from 表名 where  UID = '好友的UID' or friendUID = '好友的UID'

将好友的UID传递到后台,过滤条件设置一下,就可以查下出来这个表中所有和这个UID 对应的数量,因为他们是唯一对应关系!而不可以重复存储

评分

参与人数 1威望 +15 收起 理由
kenminkajp + 15 很给力!

查看全部评分

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

73

主题

345

帖子

1695

积分

金牌会员

Rank: 6Rank: 6

积分
1695
QQ
 楼主| 发表于 2017-3-8 14:40:24 | 显示全部楼层
本帖最后由 kenminkajp 于 2017-3-8 14:42 编辑

用了个子查询来实现了,感谢2楼!
select UID , count(UID) as countUID from 表 where UID =any (SELECT friendUID FROM 表 WHERE UID='1000001') group by UID
请结贴。
fried_20170308153430.png


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-2 18:47 , Processed in 0.065466 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表