gpt4 book ai didi

mysql - 具有复杂条件的 SQL 更新

转载 作者:行者123 更新时间:2023-11-30 22:46:59 25 4
gpt4 key购买 nike

我有两个表 table1(name, num) 和 table2(index, name, num)表1名称列有长名称,表2名称列有长名称和短名称。

表1:

   name                num
abc.xyz.com 1234

表2:

索引名称编号

1            abc            1234
1 abc.xyz.com 6789
2 abc 1111
2 abc.xyz.com 2222

我需要使用以下条件更新 table2 列“num”:

  1. 从 table2 中获取索引,其中 table1.name 的短名称 = table2.name AND table1.num = table2.num
  2. 获取长名条目,其中长名的索引=从条件1中得到的索引
  3. 用 table1.num 更新 table2.num

本例基于上例

  1. 我们得到索引 1
  2. 我们得到表2中的第二行
  3. 将table2中第二行的行数从6789更新为1234

请帮助我编写针对这种复杂条件的 sql 查询..

提前致谢

最佳答案

如果我正确理解逻辑,这个查询应该返回你想要的 num:

select t2.*, t1.num
from table2 t2 join
table1 t1name
on t2.name = t1name.name;

如果是这样,您可以将它变成一个更新:

update table2 t2 join
table1 t1name
on t2.name = t1name.name
set t2.num = t1.num
where t2.num <> t1.num;

关于mysql - 具有复杂条件的 SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com