2012-02-10 185 views
0

我有2個表存儲產品的價格。SQL查詢價格檢索

主表爲Product其中包含所有產品詳細信息。

產品的價格被存儲在兩個不同的表具有以下結構:

  • 變體:p_idprice
  • advance_price:p_idprice

現在我想合併這些表來獲得產品的所有價格。

注意:一個產品的價格在variant表或advance_price表中。不是兩個表。

我在尋找這樣的結果:

product.id, price 

(這可以從variant表或advance_price表)

任何想法將不勝感激。

回答

3

你需要的是COALESCE()的價格從兩個表,適當加入:

SELECT 
    Product.p_id, 
    COLAESCE(variant.price, advance_price.price) AS price 
FROM 
    Product 
    LEFT JOIN variant ON Product.p_id = variant.p_id 
    LEFT JOIN advance_price ON Product.p_id = advance_price.p_id 

COALESCE()將在它的參數的第一個非空值。在給定的p_idvariantadvance_price表中沒有記錄的情況下使用LEFT JOIN

+0

謝謝你的幫助。它解決了我的問題。 – jbcedge 2012-02-10 04:17:50