SQL自加入 - 一对多 - 带日期

时间:2017-11-09 14:45:37

标签: sql sqlite

我在sqlite中有以下两个表:

SQL Tables

enter image description here

表格“绩效指标表”每天都会使用前一天针对每个网站的“PerformanceIndicator”值进行填充。每个站点都连接到许多其他站点,称为站点的邻居。例如,站点A可能具有站点C和D作为其邻居。类似地,站点C可以具有B并且其自身作为邻居。这些邻居关系在一个主要是静态的“邻居表”中定义。

我需要提出一个视图,加入两个表,我们有:

Resultant Table

enter image description here

请帮我提出所需的SQL。我想到了以下几点:

SELECT dr.DependentRoleId, dr.ParentRoleId, r2.RoleName AS 'ParentRoleName', r.RoleId, r.RoleName AS 'ChildRoleName'
FROM DependentRoles dr
INNER JOIN [Role] r ON dr.ChildRoleId = r.RoleId
LEFT OUTER JOIN [Role] r2 ON dr.ParentRoleId = r.RoleId
INNER JOIN ActiveRole ar ON r.RoleId = ar.RoleId
WHERE ar.RoleId = 4

我正在使用Sqliteman来处理查询,这给了我一些结果。但导出Sqliteman的结果没有响应。这可能是由于行数。行数应为:

Number of rows in resultant view

enter image description here

如果看起来没问题,请告诉我,并且对不能在线拍摄图片感到抱歉。

1 个答案:

答案 0 :(得分:0)

select neighbors.site, neighbors.neighbor, 
       p1.*, p2.*,
       performance(..)
from neighbors 
inner join PI_Table p1
   on neighbors.site = p1.site;
inner join PI_Table p2
   on neighbors.neighbor = p2.site;
  AND p1.date = p2.date