2012-02-10 160 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