MySQL使用UPDATE和SELECT嵌套查询

时间:2015-06-08 13:39:41

标签: mysql

我有两个表,一个对另一个表有引用。我想做以下事情:

UPDATE candidate_skill SET skill_id = skill.id WHERE skill_id = SELECT 

WHERE skill.name = "name" ;

我的语法是否正确?我怎样才能加入呢?

2 个答案:

答案 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