2012-11-07 4 views
3

동일한 테이블을 가진 mySQL 데이터베이스가 있습니다. id1id2이 적어도 2 개의 테이블에서 동일하거나 그렇지 않은 경우 행을 표시 할 때마다 모든 테이블에 가입하고 조회수와 조회수를 합산해야합니다.여러 개의 ID를 기반으로 여러 테이블의 mysql - sum 열

테이블 구조 아래 참조하십시오

Table1: 
id..id2...views...hits 
1...102...55......12 
2...103...12......22 

Table2: 
id..id2...views...hits 
1...123...512......13 
2...103...123......43 

Table3: 
id..id2...views...hits 
1...102...232......43 
2...103...100......70 

최종 결과는 다음 표를해야한다 :

id...id2...views...hits 
1....102...287....65 <-- This one is the result of adding 1st row of table1 and 2nd row of table 2 
1....123...512....13 <-- This is the 1st row of table2 as there's no other id2 = 123 
2....103...235....135 <-- This is the sum of 2nd row in table1 + 2nd row in table2 + 2nd row in table3 

나는이 말이하고 누군가가 도움을 줄 수 있기를 바랍니다.

감사합니다.

답변

3

평소처럼 다음 그룹과 합, 노동 조합과 함께 세 테이블의 행을 넣어 :

SELECT id, id2, SUM(views), SUM(hits) 
FROM 
(
    SELECT id, id2, views, hits 
    FROM Table1 
    UNION ALL 
    SELECT id, id2, views, hits 
    FROM Table2 
    UNION ALL 
    SELECT id, id2, views, hits 
    FROM Table3 
) x 
GROUP BY id, id2 
+0

가 아아 내가 바보! 2 ID로 인해 작동하지 않을 것이라고 생각했지만 당신 말이 맞습니다. 고마워요! – user1806446

+0

이 구문은 SQLite에서도 작동하므로 정말 멋지 네요! 이 답변을 주셔서 감사합니다, 그것은 나 역시 도움이되었습니다! –

관련 문제