自联接表SQL

时间:2016-05-25 17:13:12

标签: mysql sql database join

我想通过在我拥有的两个巨大的表(一个超过1000万行)上做一些选择来创建一个视图

第一个列有以下列,我们称之为WRSD:

  

ID_Deal,年份,GVKEY_ACQ,TARGET_GVKEY

在这个表中,我们有一些交易,其中包含收货人的ID和另一个交易目标(因此是de GVKEY)

第二个名为mytable:

  

ID_firm,year,subcat,totalpat,numpat

/etc/shadowWRSD.GVKEY_acq参考WRSD.TARGET_GVKEY

我想选择一个会显示的表格:

  

ID_DEAL,GVKEY_acq,年份,subcat,totalpat,numpat,TARGET_GVKEY,   totalpat,numpat

这样我就可以比较每个子类别的两家公司之间的数据。

我尝试了很多查询,但没有一个有效,是否有人对如何解决这个问题有任何线索?

非常感谢。

2 个答案:

答案 0 :(得分:0)

我不了解MySQL,但如果@Serg的提交是正确的,你应该可以做类似的事情:

SELECT 
    W.Year,
    A.ID_firm AS 'Aquiring Firm', 
    B.ID_firm AS 'Target Firm'
  FROM WRSD AS W
  INNER JOIN myTable AS A ON W.GVKEY_ACQ = A.ID_firm
  INNER JOIN myTable AS B ON W.TARGET_GVKEY = B.ID_firm

答案 1 :(得分:0)

如果您在同一个WRSD中有两个不同的子公司(mytable.ID_firm),该怎么办?应该跳过吗?如果是这样,也可以使A.subcat = B.subcat。但似乎你有一个设计问题,或者你正试图做一些可用数据并不高兴的事情。