Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Join - Felder in Tabelle 2 überschreiben die in Tabelle 1

Verwenden Sie einen LEFT JOIN zusammen mit IFNULL um zuerst die Überschreibungen zu prüfen und auszuweichen, wenn keine Überschreibung vorhanden ist.

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  

Hinweis:Ich habe die WHERE dealerID = 123 verschoben zum Join-Prädikat, um alle abzurufen Produkte und die Überschreibungen für einen bestimmten Händler.