2012-04-10 21 views
0

私はこの種の新しいクエリの種類について少し混乱しています(DISTINCT、GROUP BYなど) 私のデータベースには3つのテーブルがあります。私がやりたい何PHPのMysql GROUP BYまたはDISTINCTクエリの使用

  • BRANDS
  • 製品
  • レシピ

そして、そのブランドの製品を探し、それらの製品のレシピが存在する場合に見て、その後BRANDSをリストすることです私はそれを書いて欲しい。

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

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

ブランドを繰り返しています。私が検索したところでは、クエリでGROUP BYまたはDISTINCTを使用する必要があります。

クエリレイアウトはどのように作成する必要がありますか?

ありがとうございます。

+0

私があなたの質問を理解する限り、あなたはどちらかです。ループを使用する必要があるか、またはb。内部結合を使用する – hjpotter92

答えて

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列を持っていると仮定ので、予めご了承ください。このクエリは、ブランドと製品に基づいてフィルタリングされた完全なレコードセットを取得します。

関連する問題