繁体   English   中英

帮助复杂的SQL查询(很多JOIN?)

[英]Help with complex SQL query (a lot of JOINs?)

此查询涉及两个数据库和4个表。 第一个数据库(PhoneBills)包含第一个表(CallDetails),其中包含以下列:

  1. [时间](开始时间)
  2. [来自](来电号码)
  3. [To](目标号码)
  4. [费用](以金钱计)
  5. [长度](召唤多长时间)

这里感兴趣的列是[From]和[To]。

在第二个数据库(rtc - 这是一个Lync持久性数据DB)中,有三个感兴趣的表:

  1. 资源(将ResourceID与用户名匹配)
  2. ResourceDirectory(定义插入ResourceID的时间以及上次更新的时间)
  3. ResourcePhone(将ResouceID与phonenumber匹配)

我老实说不知道ResourceDirectory定义了什么,我猜测用户名匹配的电话号码可以改变,目录跟踪那些时间。 出于简化的目的,我暂时忽略这一部分。

我想要实现的是从资源获取用户名,因为我可以在ResourcePhone中找到与我的电话号码匹配的内容。

这不行吗?

SELECT Username
FROM Resource R
JOIN ResourcePhone RP on R.ResourceID = RP.ResourceID
WHERE RP.phonenumber = '1111111111'

没有测试过。 我今天早上没喝咖啡。 你被警告过了。

select 
  pb.Time, 
  pb.From, r1.Username as FromName, 
  pb.To,   r2.Username as ToName, 
  pb.Cost, pb.Length
from PhoneBills pb
inner join ResourcePhone rpfr on rpfr.PhoneNumber = pb.From
inner join ResourcePhone rpto on rpto.PhoneNumber = pb.To
inner join Resource r1 on r1.ResourceID = rpfr.ResourceID
inner join Resource r2 on r2.ResourceID = rpto.ResourceID

将PhoneBills加入ResourcePhone以访问特定电话号码的ResourceID。 然后将该ResourceID加入表Resource以访问用户名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM