2017-12-23 68 views
2

후속 질문이 있습니다. sum of counts of different columns of same table 다른 테이블 (B)의 필드 (Z)를 업데이트하고 싶습니다. 결과 선택 쿼리 (A.COUNT_TOTAL) : 나는 문 다음 시도mySQL의 다른 테이블에서 select 결과를 가진 테이블의 필드를 업데이트하십시오.

SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
FROM 
(
SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
UNION ALL 
SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
) A 
GROUP BY A.ID 
ORDER BY A.ID;` 

, (그러나 막연한 오류 메시지가 얻을) :

UPDATE B 
    INNER JOIN (
    SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
    FROM 
    (
    SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
    UNION ALL 
    SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
    ) A 
    GROUP BY A.ID) as A on B.ID = A.ID 
    SET B.Z = A.COUNT_TOTAL 
+0

모호한 오류가 발생 했습니까? – CGritton

답변

0

을 당신은 ambiguos (및 별명 A와 잘못된 참조가 있습니다. 다른 별칭에 대해 동일한 이름을 두 번 사용하고 있습니다.) 다른 하위 쿼리에 다른 별칭 사용 (예 :

)
UPDATE B 
    INNER JOIN (
    SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
    FROM 
    (
    SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
    UNION ALL 
    SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
) A 
    GROUP BY A.ID) T on B.ID = T.ID 
    SET B.Z = T.COUNT_TOTAL 
+0

감사합니다. 이것은 완벽하게 작동했습니다! –