我有一个父表“user”和一个子表“profile”。对于每个配置文件,还存在具有相同ID的用户,但不是相反的用户。配置文件有名称,现在我也将属性名称添加到用户。
我想发出一个遍历所有配置文件的MySQL语句,用相同的ID抓取用户,并使用配置文件的名称更新用户的列名。
我该怎么做?我之前从未在SQL语句中使用过循环。
答案 0 :(得分:4)
@KenDowns是对的,你不需要循环。但他的陈述有一个小缺陷。这是正确的,对我有用(你不需要一个from-clause):
UPDATE user, profile
SET user.name = profile.name
WHERE profile.id = user.id
答案 1 :(得分:2)
SQL是基于集合的,不需要像这样的循环:
UPDATE profiles
set name = user.name
from user
where profiles.userId = user.userId