2012-04-10 4 views
0

Ich bin ein bisschen verwirrt über diese Art von neuen Abfragetypen für mich (DISTINCT, GROUP BY usw.) Ich habe drei Tabellen in meiner Datenbank.Mysql GROUP BY oder DISTINCT Abfrage Verwendung in PHP

  • MARKEN
  • PRODUKTE
  • REZEPTE

Was würde ich tun möchte, ist für Produkte dieser Marke suchen BRANDS dann zur Liste und sehen, ob es eine RECIPE dieser Produkte ist, dann Ich möchte, dass es geschrieben wird.

Ich kann es mit den grundlegenden Abfragen schreiben;

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

aber es wiederholt die brands.As weit ich gegoogelt Ich habe GROUP BY oder DISTINCT in meiner Anfrage verwenden.

Wie soll ich mein Abfrage-Layout erstellen und welche von denen sollte ich verwenden?

Vielen Dank.

+0

Soweit ich Ihre Frage verstehe, Sie entweder ein. Brauchen Sie eine Schleife oder b. Verwenden Sie innere Verknüpfungen – hjpotter92

Antwort

0

Ich glaube nicht, dass Sie unbedingt alle distinct und Gruppierung tun müssen, es sei denn, Ihre Datenbank hat doppelte Zeilen. Sie können wie so in einer Abfrage all das auswählen:

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 

Bitte beachten Sie, dass ich davon ausgegangen Sie eine Brands.BrandName und Products.ProductName Spalte haben. Mit dieser Abfrage erhalten Sie ein vollständiges Recordset, das nach Marke und Produkt gefiltert wird.