我有两个表,一个对另一个表有引用。我想做以下事情:
UPDATE candidate_skill SET skill_id = skill.id WHERE skill_id = SELECT
WHERE skill.name = "name" ;
我的语法是否正确?我怎样才能加入呢?
答案 0 :(得分:0)
根据您的查询确切地确定您要执行的操作很困难,但您似乎正在尝试更新candidate_skill
表中的某些行集以设置{{1根据名称将值赋予给定skill_id
的ID。
有几种方法可以实现这一目标。无论哪个示例,您都应该为skill
语句提供正确的where子句,以定义更新哪些行。
一种方法是使用子查询:
update
另一种解决方案是使用用户定义的变量:
update candidate_skill
set skill_id = (select id from skill where name = "name")
where ...;
答案 1 :(得分:0)
不,这不是一个正确的语法。您的查询应如下所示
UPDATE candidate_skill a
JOIN skill b ON a.skill_id = b.name
SET a.skill_id = b.id