본문 바로가기
MySql

MySQL 두 번째 그룹에서 선택 그룹을 사용하고 MySQL의 데이터 소스로 테이블을 업데이트하는 방법은 무엇입니까?

by 베이스 공부 2020. 11. 25.
반응형

나는 이것을 할 수있다 :

SELECT t2.value + sum(t3.value)
FROM tableA t2, tableB t3
WHERE t2.somekey = t3.somekey
GROUP BY t3.somekey

하지만 어떻게할까요?

 UPDATE tableA t1
    SET speed = (
        SELECT t2.value + sum(t3.value)
        FROM tableA t2, tableB t3
        WHERE t2.somekey = t3.somekey
        AND t1.somekey = t3.somekey
        GROUP BY t3.somekey
   )
;

MySQL은 FROM 절에서 업데이트 할 대상 테이블 t1 을 지정할 수 없기 때문에 불법이라고 말합니다.

 

해결 방법

 

쿼리를 다시 작성하여 수행 할 수 있습니다.

UPDATE tableA t1, (
   SELECT somekey, SUM(value) value
   FROM tableB t3
   GROUP BY somekey
) t2
SET speed = t1.value + t2.value
WHERE t1.somekey = t2.somekey;

 

참조 페이지 https://stackoverflow.com/questions/2765768

 

 

반응형

댓글