表被指定两次,既作为“ UPDATE”的目标,又作为mysql中数据的单独来源
我有以下MySQL查询,我要检查,如果 和 的 从类型 与平等的
和 的 ,然后更新状态在 表中对 在
UPDATE manager as m1 SET m1.status = 'Y'
WHERE m1.branch_id IN (
SELECT m2.branch_id FROM manager as m2
WHERE (m2.branch_id,m2.year) IN (
(
SELECT DISTINCT branch_id,year
FROM `branch_master`
WHERE type = 'finance'
)
)
)
但出现错误
表’m1’被指定两次,既作为’UPDATE’的目标,又作为数据的单独源
回答:
这是典型的MySQL问题,通常可以通过从派生表中进行选择来规避,例如
FROM manager AS m2
采用
FROM (select * from manager) AS m2
完整的声明:
UPDATE managerSET status = 'Y'
WHERE branch_id IN
(
select branch_id
FROM (select * from manager) AS m2
WHERE (branch_id, year) IN
(
SELECT branch_id, year
FROM branch_master
WHERE type = 'finance'
)
);
以上是 表被指定两次,既作为“ UPDATE”的目标,又作为mysql中数据的单独来源 的全部内容, 来源链接: utcz.com/qa/397544.html