다른 테이블의 일부 값의 합계를 기반으로 테이블의 여러 레코드를 업데이트해야합니다. 여기 내 쿼리가 있습니다 :중첩 조인이 작동하지 않는 업데이트 문
UPDATE aallinnot2 c SET c.Energ_Kcal = (SELECT d.id1, SUM(c.Energ_Kcal)
FROM aaingred a
LEFT JOIN aaweight b ON a.unit = b.uni
LEFT JOIN aallinnot2 c ON a.mfdfsds = c.NDB_No
LEFT JOIN aalinfsds d ON a.fsdsnum = d.id1
WHERE d.own_id =42
GROUP BY id1)
WHERE c.NDB_No
IN ( SELECT DISTINCT `fsdsnum`
FROM `aaingred`
WHERE `usernum` LIKE '42'
)
MySQL said:
#1093 - You can't specify target table 'c' for update in FROM clause
불행히도, 나는 어떻게 목표 테이블 'c'를 참조하지 않고 내 값을 얻을 줄 모르겠다! 이 문제를 해결할 수있는 방법이 있습니까?
을 고정하지만, 필드를 업데이트하는 하위 쿼리가 하나의 행과 하나의 열을 반환해야합니다. – newtover
에도 여전히 같은 오류가 발생합니다. "# 1093 - FROM 절" – Nat
Good spot newtover "에서 대상 테이블 'aallinnot2'를 업데이트 할 수 없습니다. 그에 따라 편집했습니다. Nathaniel - 여기 내 깊이가 없다고 생각합니다. SQL Server가 이와 관련하여 작업 할 것이라고 확신합니다. –