【问题标题】:SQL query price retrievalSQL查询价格检索
【发布时间】:2012-02-10 02:36:45
【问题描述】:

我有 2 个表格存储产品的价格。

主表是Product,其中包含所有产品详细信息。

产品的价格存储在具有以下结构的两个不同的表中:

  • 变体: p_idprice
  • advance_price: p_id, price

现在我想合并这些表以获得产品的所有价格。

注意:一种产品的价格在variant 表或advance_price 表中。 Not is both table.

我正在寻找这样的结果:

product.id, price 

(这可以来自variant 表或advance_price 表)

任何想法都会受到赞赏。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您需要的是 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() 将在其参数中采用第一个非空值。 LEFT JOIN 用于在给定p_idvariantadvance_price 表中不存在记录的情况下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多