我正在尝试创建一个UPDATE
查询,该查询将使用另一个用户的NameID
字段值替换名为TimeStamps
的表上的id
字段表名为Names
。这是一些示例数据。
名称表
id:1
name:John
password:1234
TimeStamps表
id:1
name:**John**
timestamp:01/01/2000 12:00:00
我想将Name
表中的TimeStamps
字段替换为id
表中相应的Names
值。我不完全确定如何编写查询,但我知道它是从这样的东西开始的。
UPDATE TimeStamps
SET NameID=(NamesTableReference)
WHERE NameID=(TimeStampsTableReference);
这样我就可以开始针对用户id
而不是用户的Name
运行查询。我们有多个具有相同名称的用户,但由于它吸引了多个用户,因此无法提取正确的数据。我可以手动更新数据,但表中有几十万行,这将花费太多时间。任何人都可以在下面的查询中阐明我需要添加/更改的内容吗?谢谢!
答案 0 :(得分:1)
我想你只想要join
:
update timestamps t join
names n
on t.id = n.id
set t.name = n.name;
但是,update
不是必需的。您有id
连接两个表。只需在使用timestamps
时使用它。也就是说,使用join
查找name
而不是将其存储在两个位置 - 并冒着与id
相关联的名称在两者中以某种方式结束的风险表。
答案 1 :(得分:0)
看起来这个查询就行了。
UPDATE TimeStamps t, Names n
SET t.NameID = n.id
WHERE t.NameID = n.Name
感谢大家的意见和帮助!希望这可以在将来帮助别人!