如何在id上合并两个表sql?

Posted

技术标签:

【中文标题】如何在id上合并两个表sql?【英文标题】:How to merge two tables sql on id? 【发布时间】: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 年了,您应该知道反馈的含义。评论、对良好帮助的投票或接受答案都是很好的工具,可以从提出问题的人那里获得反馈...... 【参考方案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 就可以用作过滤器。

【讨论】:

以上是关于如何在id上合并两个表sql?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 如何将一个表中的两条或多条拥有相同ID的记录合并为一条?

如何在合并数据集之前检查行是不是存在(SQL Server)

如何在SQL Server中合并两个表

SQL Server如何将Id相同的字段合并,并且以逗号隔开

如何在 laravel 5.8 中合并两个 sql 表

如何将两个表与对应相同id号的相同行数合并在一起?