我有2张表存储产品的价格。
主表格为Product
,其中包含所有产品详细信息。
产品的价格存储在两个不同的表中,具有以下结构:
p_id
,price
。p_id
,price
。现在我想合并这些表以获得产品的所有价格。
注意:一个产品在variant
表或advance_price
表中都有价格。不是两个表。
我正在寻找这样的结果:
product.id, price
(这可以来自variant
表或advance_price
表)
任何想法都将受到赞赏。
答案 0 :(得分: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()
将在其参数中获取第一个非null值。如果给定LEFT JOIN
的{{1}}或variant
表中没有记录,则使用advance_price
。