sql >> Database >  >> RDS >> Oracle

Oracle sql MERGE INTO met een enkele where-clausule

Voor dit voorbeeld zit je probleem zeker in de USING subquery. Deze zoekopdracht levert meer dan één waarde op van table2.column1 :

SELECT DISTINCT table2.column1, 
        view1.column2
 FROM SCHEMA2.TABLE_2 table2
 LEFT JOIN SCHEMA2.VIEW_1 view1
 ON table2.column2 = view1.column3

Dus de ON-clausule komt overeen met dezelfde rij(en) in table1 meer dan eens:

ON (table1.column3 = t2.column1 )

Oracle kan niet achterhalen welke waarde van t2.column2 moet worden gebruikt in de UPDATE, dus het slingert ORA-30926 .

Het gebruik van distinct in de subquery helpt niet, want dat geeft permutaties van alle kolommen. U moet een subquery schrijven die unieke waarden van t2.column1 . oplevert over alle rijen, of voeg nog een identificerende kolom(men) toe om een ​​unieke sleutel te genereren die u kunt koppelen aan table1 .



  1. Gegevens van meerdere zoekopdrachten weergeven in een enkel cirkeldiagram met behulp van de cfchart-tag

  2. MySQL-syntaxisfout. Kan het niet oplossen

  3. Wat is de equivalente syntaxis voor Outer Apply in PostgreSQL?

  4. Probleem met weergave van MySQL-gegevens op Android Studio met volley