合并/联接多个表SQL

时间:2019-03-05 14:58:03

标签: sql sql-server database tsql join

我正在使用一个数据库,该数据库有5个表,每个表具有不同数量的观察值。我在下面的每个表中都包含对列的描述。从下面可以看到,表1,2和5具有共同的SecurID,表3和4具有共同的因子,最后3和5具有共同的BID。我需要对表1 vs 2的暴露情况进行分析,并按日期归还。为此,我需要进行多个合并/联接。我需要联接表3和4,然后将它们与表5联接,最后与1和2联接。我尝试的是多个联接,例如:

SELECT * 
FROM Table3
INNER JOIN Table4 ON Table3.Factor = Table4.Factor
LEFT JOIN Table5 ON Table3.BID = Table5.BID
LEFT JOIN Table1 ON Table5.SecurID = Table1.SecurID
LEFT JOIN Table2 ON Table5.SecurID = Table2.SecurID

我的问题是,当我运行此查询时,我得到了很多疯狂的额外观察结果。多个联接函数是组合所有这些表的最有效方法吗?我对SQL非常陌生,但是每个表都有一个索引,与SELECT相比,我认为这是一种加快数据检索过程的更快方法。

  • 表1(观察值32,800):SecurID,HoldingDate,权重
  • 表2(观察到2200):SecurID,HoldingDate,权重
  • 表3(观察值808400):出价,因子,暴露量,日期
  • 表4(8000个观测值):Factor,Return和FactorGrpName
  • 表5(观察到1600):SecurID,SecurName,BID

0 个答案:

没有答案