我对这种新的查询类型有点困惑(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
请注意,我假设您有一个"品牌.品牌名称"和"产品.产品名称"列。此查询将为您提供基于"品牌"和"产品"筛选的完整记录集。