sql >> Database >  >> RDS >> Oracle

Oracle SQL gecorreleerde update

Als er een een-op-veel-relatie is tussen t1 en t2 of tussen t2 en t3, krijgt u veel overeenkomsten voor elke rij in t1. Als je weet dat alle rijen in t3 die bij dezelfde rij in t1 horen dezelfde waarde hebben in d, dan kun je DISTINCT gebruiken om (identieke) duplicaten te verwijderen.

UPDATE table1 t1
   SET t1.c = (select DISTINCT t3.d
               from table2 t2, table3 t3
               where t2.b = t3.b and t1.a = t2.a)                                  
 WHERE EXISTS ( SELECT 1 FROM table2 t2, table3 t3 WHERE t1.c = t3.c and t1.a = t2.a);


  1. 10 tijdbesparende tips voor MS Access-gebruikers

  2. De uitvoer van een BQ-query toewijzen aan variabele

  3. MySQL-weergaven:verwijzen naar een berekend veld (op naam) in een ander berekend veld

  4. een panda-dataframe maken op basis van een databasequery die bindvariabelen gebruikt