2013-11-04 17 views
0

我有兩個相同的信息表,包括:身份證,姓名,地址,郵政編碼,電話號碼。但是,每張桌子上同一個人的ID不同。我如何創建一個人行橫道表來匹配基於其餘信息的ID?如何創建人行橫道表以匹配具有不同ID的人?

EX)

表1

ID | Name  | Address  | Zip | Phone 
----------------------------------------------------- 
1111 | John Doe | 123 Fake St | 12345 | 123-456-7890 
----------------------------------------------------- 

表2

ID | Name  | Address  | Zip | Phone 
----------------------------------------------------- 
2222 | John Doe | 123 Fake St | 12345 | 123-456-7890 
----------------------------------------------------- 

希望的人行橫道

Table1ID | Table2ID 
--------------------- 
1111  | 2222 
--------------------- 

任何瞭解將不勝感激。 謝謝!

+0

你熟悉'JOIN's?你可以在你希望匹配的所有字段上加入JOIN。 – zimdanen

回答

3

可以聯接匹配這樣的列中的兩個表:

SELECT Table1.ID AS Table1ID, Table2.ID AS Table2ID 
FROM Table1 
INNER JOIN Table2 ON Table1.Name = Table2.Name 
    AND Table1.Address = Table2.Address 
    AND Table1.Zip = Table2.Zip 
    AND Table1.Phone = Table2.Phone 

在這裏,我加入了對所有列,你就必須把它調整到實際匹配的的...

+0

非常有幫助,謝謝。我不知道你可以使用'和''或'運算符加入。 – user2954362

0

正如解釋in this article and comments,你可以使用JOIN通過表的別名匹配兩個表中的所有列:

SELECT t1.id Tab1Id, t2.id Tab2Id 
FROM t1 
INNER JOIN t2 on tb1.name = t2.name 
INNER JOIN t2 tb2_1 on t1.address = tb2_1.address 
INNER JOIN t2 tb2_2 on t1.zip = tb2_2.zip 
INNER JOIN t2 tb2_3 on t1.phone = tb2_3.phone 
+0

這是不正確的語法;請參閱** jpw **的正確語法的答案。 – zimdanen

+0

不錯,@jpw的答案更簡單明瞭,我要清理一些視圖,tks! –

相關問題