2013-03-09 3 views
0

두 개의 동일한 테이블을 하나의 테이블로 병합하고 사용자를 구별하려고합니다. 2 개 개의 테이블은 같이 : SQL 쿼리가 보일 것입니다 방법두 개의 동일한 테이블을 병합하는 SQL 쿼리

user, total1, total2 
1, 7, 4 
2, 10, 7 
3, 14, 3 

:

Table1 
************** 
id, user, total 
1, 1, 7 
2, 2, 10 
3, 3, 14 


Table2 
************** 
id, user, total 
1, 1, 4 
2, 2, 7 
3, 3, 3 

나는이 결과를 갖고 싶어?

+1

모든 사용자는 정확히 'Table1'에 하나의 레코드 만 있고 'Table2'에 정확히 하나의 레코드 만 있습니까? 아니면 테이블에 레코드가없는 사용자가 있습니까? 또는 누가 테이블에 * 여러 개의 레코드가 있습니까? 그렇다면 결과 집합이 어떤 경우에 표시되는지 나타낼 수 있습니까? – ruakh

+0

적절한 태그 (Oracle, SQL Server, MySQL 등)를 추가하여 대상으로 삼고있는 RDBMS를 지정하십시오. 보편적으로 지원되지 않는 언어 나 제품 기능을 이용하는 대답이있을 수 있습니다. 또한 특정 RDBMS로 태그를 달아서 질문에 답하는 것이 더 적합한 사람들로부터주의를받을 수 있습니다. – Taryn

+0

두 개의 불필요한 태그를 제거했습니다 ('query'는 필요하지 않습니다 :'sql' 태그는 SQL 쿼리를 의미하고,'table'은 잘못 배치되었습니다 : 귀하의 질문은 테이블을 데이터 구조로 탐색하지 않습니다). 그것은 @bluefeet에서 제안한 것처럼, 사용중인 SQL 제품을 지정하는 태그를위한 공간을 제공합니다 (하나 추가하는 것을 고려하십시오). –

답변

4

당신은 user 열에 테이블 JOIN하기를 원할 것입니다 : 당신이 JOIN 구문을 학습하는 데 도움이 필요하면

select t1.user, 
    t1.total, 
    t2.total as total2 
from table1 t1 
inner join table2 t2 
    on t1.user = t2.user 

SQL Fiddle with Demo

을 참조하십시오 여기에 큰 visual explanation of JOINs (Jeff Atwood에 의해 작성).

INNER JOIN 구문은 두 테이블간에 일치하는 모든 행을 반환합니다.

다른 테이블을 추가하려면 JOIN을 추가하면됩니다. 귀하의 의견을 토대로 다음과 같이 사용하십시오 :

select t1.user, 
    t1.total, 
    t2.total as total2, 
    t3.department 
from table1 t1 
inner join table2 t2 
    on t1.user = t2.user 
inner join table3 t3 
    on t1.user = t3.user 
+0

내가 부서에서 모든 사용자를 세 번째 테이블을 추가하고 다른 2 사용자 열을 연결하고 좀하고 싶습니다 4. 이 같은 세 번째 테이블의 모양을 표 3 ********** ******* 사용자 fname lname 부서 1 조 Doe 4 2 John Smith 6 3 Mike Dewsky 4 – user1810401

+0

@ user1810401 내 편집을 참조하면 쿼리에 다른 조인을 추가 할 수 있습니다. :) – Taryn

관련 문제