有两个表:表 A 和表 B。它们具有相同的列,并且数据实际上是相同的。它们都具有自动递增的 ID,两者之间的唯一区别是它们对于相同的记录具有不同的 ID。
在这些列中,有一个 IDENTIFIER 列不是唯一的,即两个表中有(非常少)具有相同 IDENTIFIER 的记录。
现在,为了找到表 A 的 ID 和表 B 的 ID 之间的对应关系,我必须在 IDENTIFIER 列上连接这两个表(出于所有目的,它是自连接),如下所示:
SELECT A.ID, B.ID
FROM A INNER JOIN B ON A.IDENTIFIER = B.IDENTIFIER
但是,由于 IDENTIFIER 不唯一,这会生成 IDENTIFIER 重复值的所有可能组合,我不希望这样。
理想情况下,我想根据它们的顺序在具有重复 IDENTIFIER 值的 ID 之间生成一对一的关联。例如,假设表 A(因此在表 B)中有 6 条 ID 不同但 IDENTIFIER 值相同的记录:
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 的顺序如何,一种生成一对一关联的方法仍然可以(但不是首选)。
谢谢你的时间,
西尔维奥