Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment fusionner deux tables pour obtenir les dernières nouvelles lignes de la table 2 et le reste de la table 1

Utilisez simplement NOT IN pour trouver les enregistrements sans correspondance avec new_table g , et regrouper avec les enregistrements récupérés par INNER JOIN

SELECT f.id_hist, f.producto, f.price
FROM TABLE(fnc_historical('JAP')) f
WHERE f.id_hist NOT IN
(SELECT DISTINCT f.id_hist
FROM TABLE(fnc_historical('JAP')) f
    inner join new_table g on (f.id_new = g.id_hist)
)
UNION
SELECT f.id_hist, f.producto, g.new_price
FROM TABLE(fnc_historical('JAP')) f
    inner join new_table g on (f.id_new = g.id_hist)