有兩個表:表A和表B.它們具有相同的列和數據幾乎相同。它們都具有自動遞增的ID,兩者之間的唯一區別是它們對於相同的記錄具有不同的ID。MYSQL:自動加入時避免重複記錄的笛卡爾積
其中列中有一個IDENTIFIER列,它不是唯一的,即在兩個表中都有(很少)具有相同IDENTIFIER的記錄。
現在,爲了找到表A的ID和表B的ID之間的對應關係,我必須在IDENTIFIER列上加入這兩個表(出於所有目的,它是自聯接),某些像:
SELECT A.ID, B.ID
FROM A INNER JOIN B ON A.IDENTIFIER = B.IDENTIFIER
但是,作爲標識符不唯一的,這會產生標識符的重複值的每一個可能的組合,我不希望出現這種情況。
理想情況下,我想生成ID之間的一對一的相關,已重複標識符值,基於它們的順序上。例如,假定有六個記錄與不同的ID和在表A(在表B中,因此)相同的標識符值:
A B
IDENTIFIER:'ident105', ID:10 -> IDENTIFIER:'ident105', ID:3
IDENTIFIER:'ident105', ID:20 -> IDENTIFIER:'ident105', ID:400
IDENTIFIER:'ident105', ID:23 -> IDENTIFIER:'ident105', ID:420
IDENTIFIER:'ident105', ID:100 -> IDENTIFIER:'ident105', ID:512
IDENTIFIER:'ident105', ID:120 -> IDENTIFIER:'ident105', ID:513
IDENTIFIER:'ident105', ID:300 -> IDENTIFIER:'ident105', ID:798
這將是理想的。 無論如何,無論ID的順序如何生成一對一關聯的方式仍然可以(但不是首選)。
感謝您的時間,
西爾維奧
+1,因爲你中有我難倒... – ircmaxell 2010-08-27 16:25:18