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:
ed ottengo la tabella non aggiornata: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)
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

Rispondi quotando