代码之家  ›  专栏  ›  技术社区  ›  bcmcfc

如何在MySQL中限制子查询的结果?

  •  1
  • bcmcfc  · 技术社区  · 14 年前

    SELECT *
    FROM product p
    JOIN (
        SELECT price
        FROM supplierPrices sp
        ORDER BY price ASC
        LIMIT 1
    ) ON (p.product_id = sp.product_id)
    

    这样做的目的是只从包含所有价格数据的表中获取特定产品的最低价格。 LIMIT 1 GROUP BY price 也无济于事。

    JOIN LEFT JOIN

    SELECT *, IFNULL(price,'n/a')

    1 回复  |  直到 14 年前
        1
  •  2
  •   user7094 user7094    14 年前

    只是稍微扩展一下Wolfy的回答,记住这是未经检验的:

    SELECT *
    FROM product p
    LEFT JOIN (
        SELECT product_id, MIN(price)
        FROM supplierPrices sp
        GROUP BY product_id
    ) x ON (p.product_id = x.product_id)
    

    而且,正如您所说的,只需对该列执行IFNULL,就可以用一些合理的内容替换它。