PHP中的Mysql GROUP BY或DISTINCT查询用法

时间:2012-04-10 13:20:45

标签: php mysql group-by distinct

我对这些类型的新查询类型有点困惑(DISTINCT,GROUP BY等) 我的数据库中有三个表。

  • 品牌
  • 产品
  • RECIPES

我想要做的是列出品牌然后寻找该品牌的产品,看看是否有这些产品的食谱,然后我希望它被写出来。

我可以用基本查询编写它;

$sql = "SELECT * FROM BRANDS";
    $sql2 = "SELECT * FROM PRODUCTS WHERE BRANDID = 1";
       $sql3 = "SELECT * FROM RECIPES WHERE PRODUCTID = 2";

但它重复了品牌。据我搜索,我必须在查询中使用GROUP BY或DISTINCT。

我应该如何创建我的查询布局以及我应该使用哪些?

谢谢。

1 个答案:

答案 0 :(得分:0)

除非您的数据库有重复的行,否则我认为您不一定需要执行所有不同的分组操作。您可以在一个查询中选择所有这些,如下所示:

Select Brands.BrandId, Brands.BrandName, Products.ProductId, Products.ProductName, Recipes.*
From Brands
Inner Join Products On Products.BrandId = Brands.BrandId
Inner Join Recipes On Recipes.ProductId = Products.ProductId
Where
    Brands.BrandId = 1 And
    Products.ProductId = 2
Order By Brands.BrandId, Products.ProductId, Recipes.RecipeId

请注意,我假设您有一个Brands.BrandName和Products.ProductName列。此查询将为您提供完整的记录集,根据品牌和产品进行过滤。