0

この種の新しいクエリ タイプ (DISTINCT、GROUP BY など) について少し混乱しています。データベースに 3 つのテーブルがあります。

  • ブランド
  • 製品
  • レシピ

私がやりたいのは、ブランドを一覧表示してから、そのブランドの製品を探し、それらの製品のレシピがあるかどうかを調べて、それを書いてほしいということです。

基本的なクエリでそれを書くことができます。

$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

データベースに重複する行がない限り、必ずしもすべての個別およびグループ化を行う必要はないと思います。次のように、1 つのクエリですべてを選択できます。

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 に答える