SQL 更新记录与另一个表中的记录进行比较

发布于 2024-08-22 14:30:40 字数 153 浏览 7 评论 0原文

应该相当简单。

我有 2 张桌子。其中一个表有 table1(ID,name,other_id) ,另一个表有 table2(id,name,group,..)

我希望 table1.other_id 与 table2.id 相同,基于两者名称字段中的数据表。

Should be fairly simple.

I have 2 tables. One of them has table1(ID,name,other_id) and the other table has table2(id,name,group,..)

I want table1.other_id to be same as table2.id based on the data in the name fields on both tables.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沉默的熊 2024-08-29 14:30:40
UPDATE t1
SET t1.other_id = t2.id
FROM Table1 t1
    JOIN Table2 t2 ON t1.name = t2.name

当然,这是假设您没有多个具有相同“名称”的记录,否则您如何判断您想要从 table2 中获取具有给定名称的 ID 的哪条记录。

UPDATE t1
SET t1.other_id = t2.id
FROM Table1 t1
    JOIN Table2 t2 ON t1.name = t2.name

This is of course assuming you don't have multiple records with the same "name", otherwise how would you tell which record with a given name you want the ID for from table2.

那一片橙海, 2024-08-29 14:30:40

这应该可以做到:

update table1 t1
set other_id = (
    select id
    from table2 t2
    where t2.name = t1.name )

如果 table2 有多个同名记录,这将失败。

This should do it:

update table1 t1
set other_id = (
    select id
    from table2 t2
    where t2.name = t1.name )

This will fail if table2 has multiple records with the same name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文