---用户信息表CREATE TABLE `cms_user` (
  `user_id` char(22) NOT NULL COMMENT '用户基本信息表主键 22位UUID',
  `user_log_name` varchar(50) NOT NULL COMMENT '登陆名',
  `user_real_name` varchar(50) NOT NULL COMMENT '真实姓名',
  `user_pwd` varchar(100) NOT NULL COMMENT '密码',
  `user_sex` tinyint(4) NOT NULL COMMENT '性别(0为男,1为女)',
  `user_address` varchar(100) DEFAULT NULL COMMENT '用户地址',
  `user_email` varchar(100) NOT NULL COMMENT '用户邮箱',
  `user_log_time` datetime DEFAULT NULL COMMENT '登录时间',
  `user_log_ip` varchar(50) DEFAULT NULL COMMENT '用户当前登录ip',
  `user_status` tinyint(4) NOT NULL COMMENT '用户状态(0为正常,1为锁定)',
  `role_id` char(22) NOT NULL COMMENT '外键cms_role.role_id`',
  `cretime` datetime DEFAULT NULL COMMENT '创建时间',
  `updtime` datetime DEFAULT NULL COMMENT '更新时间',
  `user_log_count` int(11) NOT NULL COMMENT '总共登录次数',
  PRIMARY KEY (`user_id`),
  KEY `FK_user_role_id` (`role_id`),
  CONSTRAINT `FK_user_role_id` FOREIGN KEY (`role_id`) REFERENCES `cms_role` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='记录用户基本信息';---新闻更新记录表CREATE TABLE `new_update_annal` (
  `news_update_no` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '更新记录编号',
  `news_update_id` char(22) NOT NULL COMMENT '更新记录逻辑编号',
  `update_date` datetime DEFAULT NULL COMMENT '更新时间',
  `state` tinyint(4) DEFAULT NULL COMMENT '状态表ID(外键)',
  `modify_user_id` char(22) NOT NULL COMMENT '更新人(外键)',
  `news_id` char(22) NOT NULL COMMENT '新闻信息表ID(外键)',
  `news_update_des` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`news_update_no`),
  UNIQUE KEY `AK_news_update_id` (`news_update_id`),
  KEY `AK_annal_user_id` (`modify_user_id`),
  KEY `AK_annal_nesw_id` (`news_id`),
  CONSTRAINT `FK_news_annal_id` FOREIGN KEY (`news_id`) REFERENCES `news_info` (`news_id`),
  CONSTRAINT `FK_user_annals_id` FOREIGN KEY (`modify_user_id`) REFERENCES `cms_user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=27645 DEFAULT CHARSET=utf8 COMMENT='新闻信息更新记录';
怎么用一条sql查询出每个用户名,每种状态的总信息数(state值有0,1,2,3,4)

解决方案 »

  1.   

    select b.user_log_name,a.state,count(*)
    from new_update_annal A inner join cms_user b On a.modify_user_id=b.user_id
    group by b.user_log_name
      

  2.   

    SELECT b.user_log_name,a.state,count(*)
    FROM new_update_annal A inner join cms_user b ON a.modify_user_id=b.user_id
    GROUP BY b.user_log_name,a.state;
    #****************************************#
    MySQL技术及运维自动化网:www.mysqlops.com新浪微博账号:http://weibo.com/mysqlops
    #****************************************#