我有一個產品表,用於存儲 「主」 定價:加入 - 在表2覆蓋項與表1
產品
==========。
ID
partnum
描述
價格
installtime
經銷商可以覆蓋標價,設置不同的價格,安裝時間,等我的想法是存儲在另一個表中的特定經銷商,差異:
覆蓋
========= =。
dealerID
partnum
價格
installtime
當我查詢經銷商的價格分貝,我需要加入這些表。我需要覆蓋表中的值來覆蓋產品表中的值。
SELECT partnum, price, installtime FROM products
JOIN overrides ON products.partnum = overrides.partnum
WHERE dealerID = 123
正如所寫的,這當然會給出錯誤。重點是我需要覆蓋表中的價格(如果存在的話)而不是產品表中的價格(與安裝時相同)。我可以使用不同的字段名稱並將邏輯移動到PHP層。但是SQL應該能夠處理它,對吧?
謝謝。這工作很好。 IFNULL和COALESCE有什麼不同?看看MySQL文檔,我沒有看到它們之間的巨大差異。 – skypanther 2011-03-07 21:47:38
@skypanther否,'IFNULL'由MySql支持,'COALESCE'是ANSI標準並且受所有RDBMS支持。 – 2011-03-07 21:53:23
好吧,我確實把這個標記爲一個mysql問題,所以我會給你答案,儘管我想了很久才把它交給了Tyler Eaves – skypanther 2011-03-08 18:25:59