如何在id上合并两个表sql?
Posted
技术标签:
【中文标题】如何在id上合并两个表sql?【英文标题】:How to merge two tables sql on id? 【发布时间】:2020-02-07 12:51:01 【问题描述】:我有两张桌子df1
和df2
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
子句中使用IN
或EXISTS
执行此操作。
【讨论】:
【参考方案3】:select * from df1
where id in (select id from df2);
这可能是您正在寻找的?这样 df2 表的列 id 就可以用作过滤器。
【讨论】:
以上是关于如何在id上合并两个表sql?的主要内容,如果未能解决你的问题,请参考以下文章
SQL 如何将一个表中的两条或多条拥有相同ID的记录合并为一条?
如何在合并数据集之前检查行是不是存在(SQL Server)