java - 聊天软件中获取通话记录的sql的怎么写
ringa_lee
ringa_lee 2017-04-17 13:11:56
[Java讨论组]

用户 表
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;

学生党求各位大神教导!

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
PHP中文网

如果自己没理解错的话,这个问题应该有一个前提: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也会有对应的关键字。希望对你有帮助吧。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号