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

Joindre - les champs de la table 2 remplacent ceux de la table 1

Utilisez un LEFT JOIN avec IFNULL pour vérifier d'abord les remplacements, et se replier si aucun remplacement n'existe.

SELECT p.partnum, 
    IFNULL(d.price, p.price) AS price,
    IFNULL(d.installtime, p.installtime) AS installtime
FROM products p 
  LEFT JOIN overrides d ON d.dealerID = 123
      AND p.partnum = d.partnum  

Remarque :j'ai déplacé le WHERE dealerID = 123 au prédicat de jointure, pour récupérer tous produits et les remplacements pour un revendeur spécifique.