使用 dplyr 进行多对多连接(多个表)

问题描述 投票:0回答:1

请让我知道如何使用 R 在多个表上进行多对多连接

library (dplyr)   

(首选)或任何方式。 下面是我的多对多连接的sql查询

     Select 
         A.Var1,
         A.Var3,
         B.Var5,
         C.Var2
     From 
                    Table1 as A
         Inner join Table2 as B on A.Var2=B.Var4
         Inner Join Table3 as C on B.Var1=C.Var3 and B.Var2=C.Var4
     Where
         A.var4= ’ABC’ and 
         B.var3= 565 and
         C.var1=’XYZ’

示例表1

      Var1   Var2   Var3   Var4
      TX     1      A      ABC
      NC     1      B      ABC 
      SC     1      C      ABC
      GA     1      D      ABC
      CA     2      E      ABC
      NY     2      F      EFG
      GA     1      G      EFG
      OH     1      H      EFG

示例表2

      Var1   Var2   Var3   Var4
      10     10      565    1  
      10     11      565    1  
      10     12      565    1 
      11     10      444    1  
      10     10      565    2  
      10     10      444    2  
      10     11      565    1 
      10     10      565    1 

示例表3

      Var1   Var2   Var3   Var4
      XYZ     A      10     10
      XYZ     B      10     10 
      YYZ     C      10     11
      XYZ     E      10     10 
      LMN     F      11     10
      LMN     G      11     11
      LMN     H      10     10 
      XYZ     I      11     10
r
1个回答
0
投票

为了进行多对多连接操作,您必须首先了解数据模型。从了解主键和外键开始。建立主键列和外键列后,将使用使用十字路口数据框的数据模型建立多对多联接,如下所示

df1.fk1 >>-> xtab.fk1-xtab.fk2 (pk) <-<< df2.fk2

您将需要创建一个人行横道数据框(xtab),其主键由两个数据框外键的组合组成。实际的连接操作只是从 xtab 到 df 的 left_joins。

© www.soinside.com 2019 - 2024. All rights reserved.