[英]Update field in table with result of select from other table in mySQL
I have a follow-up question to sum of counts of different columns of same table I want to update a field (Z) in another table (B), which also has 'ID' with the results (A.COUNT_TOTAL) of the select query: 我有一个后续问题要汇总同一张表的不同列的计数,我想更新另一个表(B)中的字段(Z),该表的选择结果(A.COUNT_TOTAL)也带有“ ID”查询:
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;`
I tried following statement, (but get a vague error message): 我尝试了以下语句,(但收到模糊的错误消息):
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
You have ambiguos (and wrong reference to alias A .. you are using two times the same name for different alias ) Try using a differnent alias for different subquery eg: 您有歧义(并且对别名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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.