다른 테이블에서 여러 테이블의 합계를 업데이트하는 방법
질문:
나는 세 개의 표가 있는데 그것이 바로 mtsr1a,engr1a와MAIN 점수이다. 아래와 같다.이 표는 2열은 행렬수, 7열은 총성적의 과정이다
mtsr1a
Column2 Column7
15/001 8
15/002 6
15/003 7
15/004 3
15/005 7
이 표는 매트릭스 번호 2열, 전체 성적 7열의 또 다른 과정이다.영어 1A
Column2 Column7
15/001 9
15/002 6
15/003 4
15/004 8
15/005 1
이것은 내가 두 테이블의 합을 얻는 데 사용하는 sql 코드이다이것은 mysql에서 잘 작동하지만, 브라우저를 새로 고칠 때 복구됩니다
select Column2,sum(Column7) total
from
(
select Column2,Column7
from mtsr1a
union all
select Column2,Column7
from engr1a
) t
group by Column2
코드를 사용하여 나는 더욱 좋은 총화를 얻었다Column2 total
15/001 17
15/002 12
15/003 11
15/004 11
15/005 8
이것은 매우 정확하지만, 내가 원하는 코드는 다음 표를 사용하고 업데이트할 것이다. 그 중에서 총의 분수열은 내가 얻은 결과 이상과 같다.나는 이런 일을 기대하고 있다.
주점수
Column2 overall_scores
15/001 17
15/002 12
15/003 11
15/004 11
15/005 8
감사합니다!
답안
세 번째 표에 두 개의 열 값을 삽입하고 사용하시겠습니까insert into .. select from
는 다음과 같습니다.insert into mainscores
select Column2,
sum(Column7) total
from (select Column2,
Column7
from mtsr1a
union all
select Column2,
Column7 from engr1a ) t
group by Column2
(또는)UPDATE
특정한 열을 원한다면, 업데이트 연결을 사용하십시오. 예를 들어UPDATE mainscores a
JOIN (
select Column2,
sum(Column7) total
from (select Column2,
Column7
from mtsr1a
union all
select Column2,
Column7 from engr1a ) t
group by Column2 ) xx
ON a.Column2 = xx.Column2
SET a.overall_scores = xx.total;