繁体   English   中英

自联接表SQL

[英]Self join table SQL

我想通过对我拥有的两个大表(其中一个行超过1000万行)进行一些选择来创建视图

第一个包含以下各列,我们将其称为WRSD:

ID_交易,年份,GVKEY_ACQ,TARGET_GVKEY

在此表中,我们进行了一些交易,其中有一个用于购买者的ID,另一个用于目标(因此为GVKEY)

第二个称为mytable:

ID_firm,年份,subcat,totalpat,numpat

WRSD.GVKEY_acqWRSD.TARGET_GVKEY参考mytable.ID_firm

我想选择一个显示以下内容的表格:

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

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

我尝试了很多查询,但都无济于事,有人对如何解决此问题有任何了解吗?

非常感谢。

我不了解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

如果您在同一WRSD中有两家公司(mytable.ID_firm)具有不同的子类别,该怎么办? 应该跳过吗? 如果是这样,还使A.subcat = B.subcat。 但是似乎您有一个设计问题,或者您正在尝试做一些使可用数据不满意的事情。

暂无
暂无

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

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