【问题标题】:How to merge two tables sql on id?如何在id上合并两个表sql?
【发布时间】:2020-02-07 12:51:01
【问题描述】:

我有两张桌子df1df2

df1

ID   val1 val2 val3
1     5    6    7
1     2    8    7
1     3    0    1
2     5    6    7
2     3    0    1
3     3    0    4
3     7    7    4
3     9    2    4
3     0    0    4

df2

ID
1
2

我想在ID 上合并,只获取df2 中的ID 值:

ID   val1 val2 val3
1     5    6    7
1     2    8    7
1     3    0    1
2     5    6    7
2     3    0    1

【问题讨论】:

  • 使用连接:df1.join(df2, ["ID"], "inner")
  • 您好@emax,作为会员,已经快 6 年了,您应该知道反馈的含义。评论、对良好帮助的投票或接受答案都是很好的工具,可以从提出问题的人那里获得反馈......

标签: sql pyspark


【解决方案1】:

尝试:

SELECT df1.* 
FROM df1
RIGHT JOIN df2
ON df1.ID = df2.ID

SELECT df1.* 
FROM DF2
LEFT JOIN DF1
ON df1.ID = df2.ID;

这是demo 在 SQL Server 上的工作原理。

【讨论】:

  • INNER JOIN,OP 只想要在 df2 中找到的 ID。
  • 嗨@emax,希望其中一个选项对您有所帮助?干杯!
【解决方案2】:

我想你想要JOIN:

select df1.*
from df1 join
     df2
     on df1.id = df2.id;

您也可以在WHERE 子句中使用INEXISTS 执行此操作。

【讨论】:

    【解决方案3】:
    select * from df1
    where id in (select id from df2);
    

    这可能是您正在寻找的?这样 df2 表的列 id 就可以用作过滤器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 2020-05-13
      • 2021-07-05
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多