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



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

  • 品牌
  • 产品
  • 食谱

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

我能够用基本查询编写它;

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

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

我应该

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

谢谢。

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

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

请注意,我假设您有一个"品牌.品牌名称"和"产品.产品名称"列。此查询将为您提供基于"品牌"和"产品"筛选的完整记录集。

最新更新