寻找发帖王---sql语句
2016-02-28 11:34
411 查看
在论坛中寻找发帖网,主要是考察函数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
建表语句并插入数据
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
相关文章推荐
- SecureCRT 连接Oracle VirtualBox虚拟机中的Linux系统
- 数据库中join和left join的区别
- MYSQL 函数datediff timestampdiff 的区别
- Mysql实时备份实现方法
- 参数化查询为什么能够防止SQL注入 (转)
- Memcached ----关于存取的小例子
- redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
- keepalived和redis主从方案
- 【Memcached】集群搭建——Memcached
- oracle 11g归档日志研究_4
- 关于winform数据库例程编译时显示的检索类工厂com错误(sqldmo.dll)
- model类中enum类型与数据库字段的映射
- oracle 11g归档日志研究_3
- oracle 11g归档日志研究_2
- Win7系统32位Oracle11g客户端安装详述
- oracle 11g归档日志研究_1
- .NET(C#)连接各类数据库-集锦
- SQL-批量插入和批量更新
- 关于MySQL数据导入之硬拷贝数据
- oracle物理备库中断一段时间后重新开启接收日志时的状态