Faccio un esempio così sarà più facile spiegarmi; questa è la situazione

DB1

Id1_AutoIncremental PIVA1_UniqueIndex NomeAzienda1
100 012 Azienda1
101 013 Azienda2
103 014 Azienda3


DB2
Id2_AutoIncremental PIVA2_UniqueIndex NomeAzienda2
10 013 Azienda2

eseguo la query ed ottengo:

DB3
SuperId_AutoIncremental Id1_UniqueIndex Id2 PIVA
1 100 null 012
2 101 10 013
3 103 null 014

---------------------------------------------------------------------------------------

Ora aggiungo un nuovo record nel DB2 ed ottengo:


DB1

Id1_AutoIncremental PIVA1_UniqueIndex NomeAzienda1
100 012 Azienda1
101 013 Azienda2
103 014 Azienda3


DB2
Id2_AutoIncremental PIVA2_UniqueIndex NomeAzienda2
10 013 Azienda2
11 014 Azienda3

Eseguo la query:

codice:
INSERT INTO DB3 ( Id1, PIVA1, id2, PIVA2 )


SELECT DB1.Id1, DB1.PIVA1, DB2.id2, DB2.PIVA2

FROM DB3 
    RIGHT JOIN ( DB1 
        LEFT JOIN DB2 
            ON DB1.PIVA1 = DB2.PIVA2 ) 
        ON DB3.PIVA1 = DB1.PIVA1
WHERE ((DB3.Id1) Is Null)
ed ottengo la tabella non aggiornata:

DB3
SuperId_AutoIncremental Id1_UniqueIndex Id2 PIVA
1 100 null 012
2 101 10 013
3 103 null 014

invece di:
DB3
SuperId_AutoIncremental Id1_UniqueIndex Id2 PIVA
1 100 null 012
2 101 10 013
3 103 11 014

Mentre, se eseguo una semplice select, il risultato è corretto, e mi associa l'ultimo record inserito:
codice:
SELECT DB1.Id1, DB1.PIVA1, DB2.id2, DB2.PIVA2


FROM   DB1 
       LEFT JOIN DB2 
          ON DB1.PIVA1 = DB2.PIVA2