2013-03-09 132 views
0

我想將2個相同的表格合併到一個表格中並區分用戶。 的2個表看起來像:SQL查詢合併2個相同的表格與不同

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 

我想有這樣的結果:

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

如何在SQL查詢應該看?

+1

是否每個用戶在'Table1'中只有一條記錄,而在'Table2'中只有一條記錄?還是有一些用戶在其中一個表中沒有記錄?或者在其中一個表中有多個*記錄的人?如果是這樣,你能指出你的結果集在這種情況下的樣子嗎? – ruakh 2013-03-09 22:47:31

+0

請通過添加適當的標籤(Oracle,SQL Server,MySQL等)來指定您要定位的RDBMS。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過使用特定的RDBMS標記它,您的問題可能會得到更適合回答的人的關注。 – Taryn 2013-03-09 22:50:16

+0

刪除了兩個不必要的標籤(不需要「query」:'sql'標籤隱含了SQL查詢;'table'錯位:您的問題不是將該表作爲數據結構進行探索)。如@bluefeet所建議的那樣,爲指定您正在使用的SQL產品的標籤或標籤提供了空間(請考慮添加一個)。 – 2013-03-10 02:58:41

回答

4

您將要JOINuser列的表:

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

如果您需要幫助學習JOIN語法,這裏是一個偉大的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喬李四4 約翰二史密斯6 3麥克Dewsky 4 – user1810401 2013-03-10 02:40:08

+0

@ user1810401你只需要添加另一個連接到查詢,看到我的編輯。 :) – Taryn 2013-03-10 03:07:01