永发信息网

sql 我的数据库有三张表 信息表 电话号码表 通话记录表 求大神帮忙写出不会出现重复的语句

答案:3  悬赏:80  手机版
解决时间 2021-03-01 11:35
  • 提问者网友:轻浮
  • 2021-02-28 18:57
一个人可以拥有多个电话号码,但是这样再显示的时候就会出现重复,我想要查询出的信息:当前用户只能查询出一个最近电话的一条记录
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-02-28 20:01
您好:
根据您的需求,写了如下代码,请参考。
SELECt (SELECT TOP 1 通话记录表.通话时间,通话记录表.电话号码
  FROM 通话记录表 
  LEFT JOIN 电话号码表 ON 通话记录表.电话号码=电话号码表.电话号码
 WHERe 电话号码表.用户ID=信息表.用户ID
 ORDER BY 通话记录表.通话时间 DESC)
  FROM 信息表
 WHERe 用户名='输入的用户名'
全部回答
  • 1楼网友:煞尾
  • 2021-02-28 21:48
select max(r.通话时间),i.name,i.id,p.phone from 信息表 i,电话号码表 p,通话记录表 r    where i.id = p.id and p.phone = r.phone group by i.name,i.id,p.phone
  • 2楼网友:千夜
  • 2021-02-28 21:06
肯定不对 你是指的是同一个数据库中的12个格式相同的表合并到一个新表中? 如果不考虑重复数据的话如下: --为了少写几个字,先进入这个数据库 user user99952009 --先用最简单的方法建一个新表(如果新表已存在则不需要此步) select top 0 * into z_pz00 from z_pz01 --执行数据插入新表 insert into z_pz00 select * from z_pz01 union all select * from z_pz02 union all select * from z_pz03 …… ---此处省略,你自己按上面的补写即可 union all select * from z_pz12 --完成插入,看一下新表 select * from z_pz00 --如果需要删除那12个表,如下: drop table z_pz01 drop table z_pz02 ……
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯