0

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

  • 品牌
  • 产品
  • 食谱

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

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

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

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

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

谢谢你。

4

1 回答 1

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 列。此查询将为您提供完整的记录集,根据品牌和产品进行过滤。

于 2012-04-10T13:27:27.363 回答