首页 > 解决方案 > 为什么我的带有子查询的 UPDATE 失败了?

问题描述

UPDATE survey_results_activities_temp
SET risk_p=titles.risk_p
WHERE employee_title= 
(SELECT CASE 
                 WHEN t.risk='low' THEN  100
                 WHEN t.risk='medium' THEN  50
                 ELSE 0
              END as risk_p 
        FROM titles t WHERE t.title=employee_title)

我有两张桌子。Titles 有一个名为 title 的字段和一个名为 risk 的字段。我正在尝试在survey_results_activities_temp 中为所有行设置一个0、50 或100 的字段。它的每一行都有一个名为 employee_title 的字段,但我从 mySQL 收到此错误:

#1054 -“字段列表”中的未知列“titles.risk_p”

标签: mysql

解决方案


请删除“作为 risk_p”

UPDATE survey_results_activities_temp
SET risk_p=titles.risk_p
WHERE employee_title= 
(SELECT CASE 
                 WHEN t.risk='low' THEN  100
                 WHEN t.risk='medium' THEN  50
                 ELSE 0
              END 
        FROM titles t WHERE t.title=employee_title)

推荐阅读