我有兩個表:SQL查詢從兩個表中選擇並返回一個值存在
callcosts
callcosts_custom
是有辦法,我可以從兩個表中選擇,如果行存在從callcosts_custom返回cost
值如果它不存在,從callcosts
具有以下WHERE
子句返回列price
:
WHERE callcosts_custom.parent = callcosts.sequence
基本上,callcosts
表具有所有默認數據,並且可以爲每個客戶添加自定義數據。
的關係如下:
call_costs.sequence = callcosts_custom.parent
所以我要檢查,如果在callcosts_custom存在特定callcosts_custom.customer
一行。如果這樣做,它會返回callcosts_custom.cost
,如果它不存在返回callcosts_price
更新查詢:
select b.cost
從call_costs_custom b 其中a.sequence = b.parent AND b.customer_seq = '124' UNION ALL 選擇a.retail 從call_costs一個 其中a.sequence = '4706' 和 不存在(來自call_costs_custom b。選擇所需1其中b.parent = a.sequence);
請提供樣本數據和預期的結果。 –
聽起來你正在尋找'LEFT OUTER JOIN'在另一個表上,然後在'SELECT'中使用'CASE'來有條件地選擇一列或另一列。 – David
看看我的更新 – charlie