Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Join - pola w tabeli 2 zastępują te w tabeli 1

Użyj LEFT JOIN razem z IFNULL aby najpierw sprawdzić nadpisania i wycofać się, jeśli nie ma nadpisania.

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  

Uwaga:przeniosłem WHERE dealerID = 123 do predykatu złączenia, aby pobrać wszystkie produkty i nadpisania dla konkretnego sprzedawcy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FLOT dane z MySQL przez PHP?

  2. Błąd wyjątku Java — Sqlite readyStatement.setBlob

  3. Jak naprawić bazy danych i tabele MySQL

  4. Jak zrzucić tylko określone tabele z MySQL?

  5. Jaki jest typ tego ciągu? a:1:{s:2:en;}