mysql数据库查询统计

桾楉叁杄 2012-06-06 11:03:05
数据库类型:mysql5.0
数据库表A:IndexID int 主键 自增长
UserID int 外键 表C的主键
aName varchar(20) a名字
B:ID int 主键 自增长
IndexID int 外键 表A主键
bName varchar(20) b名字
C:UserID int 主键 自增长
cName varchar(20) c名字
为通讯录结构,表A为通讯录组,表B为通讯录人员,表C为用户表
表B与表C没有直接关联键。
现只知道C的主键UserID,求如何通过一条sql语句查询到该用户下有多少通讯录人员。
sql语句请注意性能优化。
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2012-06-07
  • 打赏
  • 举报
回复
select a.userID,count(*)
from a,b,c
where a.userid=a.userid and a.indexid=b.indexid
group by a.userID
;
rucypli 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SELECT COUNT(0) FROM B WHERE IndexID IN (SELECT IndexID FROM A WHERE UserID=123);
[/Quote]=
diffmaker 2012-06-06
  • 打赏
  • 举报
回复
SELECT COUNT(0) FROM B WHERE IndexID IN (SELECT IndexID FROM A WHERE UserID=123);
ACMAIN_CHM 2012-06-06
  • 打赏
  • 举报
回复
select c.UserID,count(*)
from c ,a,b
where c.UserID=a.UserID and a.IndexID=b.IndexID
group by c.UserID

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧