我对这些类型的新查询类型有点困惑(DISTINCT,GROUP BY等) 我的数据库中有三个表。
我想要做的是列出品牌然后寻找该品牌的产品,看看是否有这些产品的食谱,然后我希望它被写出来。
我可以用基本查询编写它;
$sql = "SELECT * FROM BRANDS";
$sql2 = "SELECT * FROM PRODUCTS WHERE BRANDID = 1";
$sql3 = "SELECT * FROM RECIPES WHERE PRODUCTID = 2";
但它重复了品牌。据我搜索,我必须在查询中使用GROUP BY或DISTINCT。
我应该如何创建我的查询布局以及我应该使用哪些?
谢谢。
答案 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列。此查询将为您提供完整的记录集,根据品牌和产品进行过滤。