当前位置:   article > 正文

能写出这条SQL语句的基本都是大神_sql大神

sql大神

用户信息表(lc_member):

CREATE TABLE `lc_member`  (

  `member_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员自增ID',

  `member_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会员用户名',

  `member_truename` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员真实姓名',

  `member_nickname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员昵称',

  `member_avatar` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员头像',

  `member_sex` tinyint(1) NULL DEFAULT NULL COMMENT '会员性别',

  PRIMARY KEY (`member_id`) USING BTREE) ENGINE = InnoDB  CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员表' ROW_FORMAT = Dynamic;

所需的数据仅为红框中的数据;

 

聊天记录表(lc_chatmsg):

CREATE TABLE `lc_chatmsg`  (

  `m_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '消息自增ID',

  `f_id` int(10) UNSIGNED NOT NULL COMMENT '会员ID',

  `f_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会员名',

  `f_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发自IP',

  `t_id` int(10) UNSIGNED NOT NULL COMMENT '接收会员ID',

  `t_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '接收会员名',

  `t_msg` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '消息内容',

  `r_state` tinyint(1) UNSIGNED NOT NULL DEFAULT 2 COMMENT '状态:1为已读,2为未读,默认为2',

  `chatmsg_addtime` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '添加时间',

  `msg_type` tinyint(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型:1为文本,2为文件',

  PRIMARY KEY (`m_id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '消息表' ROW_FORMAT = Dynamic;

需求(这些事根据自己想的写出来的,只要结果一致就行,但大概需求不变):

  1. 从聊天记录表中查询出指定用户的所有记录,例如李四登录,查询出发送者或接受者为李四的所有信息记录;
  2. 从查出来的信息记录中根据非李四字段的另一个f_id或t_id的信息进行分组,例如发送者为李四,接受者为张三,或发送者为张三,接受者为李四,这都属于好友张三的信息记录;
  3. 查询出每个好友的最新记录,例如发送者为李四,接受者为张三,或发送者为张三,接受者为李四,这都属于好友张三的信息记录,从此记录中返回未读记录数(可选需求,消息列表显示未读数),最新的消息记录,好友id;
  4. 将从聊天记录中查出来的数据和用户数据关联,利用聊天记录查出来的好友id和用户id进行绑定;
  5. 最终返回结果为好友id,好友名称,好友头像,消息时间,消息内容,未读信息数(可选),消息类型;

 

最终实现效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/961794
推荐阅读
相关标签
  

闽ICP备14008679号