sql >> Databasteknik >  >> RDS >> Mysql

Join - fält i tabell 2 åsidosätter de i tabell 1

Använd en LEFT JOIN tillsammans med IFNULL för att först kontrollera åsidosättningarna och fallback om ingen åsidosättning finns.

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  

Obs:Jag flyttade WHERE dealerID = 123 till join-predikatet för att hämta alla produkter, och åsidosättningarna för en specifik återförsäljare.



  1. Hur jämför man den nuvarande raden med nästa och föregående rad i PostgreSQL?

  2. Hur man installerar MySQL på macOS

  3. Introduktion till C

  4. ISO-8859-1-tecken trunkerar text som infogas i utf-8 mysql-kolumn