java - 聊天软件中获取通话记录的sql的怎么写

 cang桑哥哥 发布于 2022-11-07 03:15

用户 表
create table user(
id int,
name varchar,
headerPicUrl varchar,
age int
);

通话记录表
create table record_list (
id int,
call_id int,//主叫
be_call_id int,//被叫
record_create_time date,//通话创建时间,
record_time date //通话时长
);

怎么查询得到一个用户的通话记录 如果该用户是主叫,则得到被叫人的id,name,headerPicUrl,age,record_create_time,record_time;
如果该用户是被叫,也得到相同的信息id,name,headerPicUrl,age,record_create_time,record_time;

学生党求各位大神教导!

1 个回答
  • 如果自己没理解错的话,这个问题应该有一个前提:record_list表的call_id 和 be_call_id与user表的id是外键关系。
    不是大神,但思考了一下,觉得可以这样写:

    SELECT u.*,
           r.record_create_time,
           r.record_time
      FROM record_list r
      JOIN user        u ON r.be_call_id = u.id
     WHERE r.call_id = 1
     UNION
    SELECT u.*
           r.record_create_time,
           r.record_time
      FROM record_list r
      JOIN user        u ON r.call_id = u.id
     WHERE r.be_call_id = 1;
    

    这个UNION关键字是SQLServer中有的,应该mysql也会有对应的关键字。希望对你有帮助吧。

    2022-11-12 01:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有