寻找发帖王---sql语句

5 篇文章 0 订阅
3 篇文章 0 订阅
在论坛中寻找发帖网,主要是考察函数count和max的应用,共用了两张表users和posts,
建表语句并插入数据
CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert INTO users(name) values("tom");
insert INTO users(name) values("jerry");
insert INTO users(name) values("text");
insert INTO users(name) values("wang");
insert INTO users(name) values("zhou");
insert INTO users(name) values("liu");
insert INTO users(name) values("sun");

CREATE TABLE `posts` (
  `id` int(11) NOT NULL auto_increment,
  `uid` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `uid` (`uid`),
  CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert INTO posts(uid) values(1);
insert INTO posts(uid) values(1);
insert INTO posts(uid) values(1);
insert INTO posts(uid) values(1);
insert INTO posts(uid) values(1);

insert INTO posts(uid) values(2);
insert INTO posts(uid) values(2);
insert INTO posts(uid) values(2);
insert INTO posts(uid) values(2);
insert INTO posts(uid) values(2);
insert INTO posts(uid) values(2);

insert INTO posts(uid) values(3);

insert INTO posts(uid) values(4);
insert INTO posts(uid) values(4);
insert INTO posts(uid) values(4);

insert INTO posts(uid) values(5);
insert INTO posts(uid) values(5);
insert INTO posts(uid) values(5);

insert INTO posts(uid) values(6);
insert INTO posts(uid) values(6);

insert INTO posts(uid) values(7);


查找发帖王
select name , p_c.max_count as max_count from users as u,
(select COUNT(uid) as count_uid,uid from posts group by uid) as p,
(select MAX(post_count.count_uid) as max_count from
(select COUNT(uid) count_uid,uid from posts group by uid) as post_count) as p_c
where p.count_uid = p_c.max_count
and p.uid = u.id

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值