So zeigen Sie datasätze oder data einzelner Elemente aus 3 Joins an

Ich versuche data von 3 separaten Tabellen anzuzeigen.

1. product_master, die data zu Produkten wie image, Preis, Menge, etc. Enthalten.

2. attribute_master, die nur attribute_id und attribute_name enthalten,

3. product_attrib_master, die data wie prod_id, dh Fremdschlüssel, attribute_id dh Fremdschlüssel und product_attribute_value enthalten.

Jetzt habe ich eine Brandnachfrage:

SELECT pm.prod_name, am.attribute_name, pa.product_attribute_value FROM product_attrib_master pa LEFT JOIN attribute_master am ON pa.attribute_id = am.attribute_id LEFT JOIN product_master pm ON pa.prod_id=pm.prod_id ORDER BY pa.prod_id; 

Diese Abfrage zeigt folgendes Ergebnis:

Bildbeschreibung hier eingeben

Jetzt möchte ich data nur eines bestimmten Artikels anzeigen. Angenommen, ich möchte data des Artikels Nokia Lumia 925 anzeigen und es ist prod_id = 12 . Was soll ich dann machen?

Kann mir jemand vorschlagen, was ich tun muss?

Hallo, Sie müssen eine WHERE- Klausel hinzufügen, die den Filter auf die resultierenden data anwendet. WHERE- Klausel mit AND , sagte SQL-Engine, dass ich gefilterte data basierend auf Klausel möchten.

 SELECT pm.prod_name, am.attribute_name, pa.product_attribute_value FROM product_attrib_master pa LEFT JOIN attribute_master am ON pa.attribute_id = am.attribute_id LEFT JOIN product_master pm ON pa.prod_id = pm.prod_id WHERE pm.prod_name = 'Nokia Lumia 925' AND pm.prod_id = 12 ORDER BY pa.prod_id; 

Sie müssen Ihrer Abfrage eine Where-Klausel hinzufügen. Versuche dies::

 SELECT pm.prod_name, am.attribute_name, pa.product_attribute_value FROM product_attrib_master pa LEFT JOIN attribute_master am ON pa.attribute_id = am.attribute_id LEFT JOIN product_master pm ON pa.prod_id=pm.prod_id WHERE pm.prod_name ='Nokia Lumia 925' and prod_id = 12 ORDER BY pa.prod_id; 
 WHERE prod_name='Nokia Lumia 925' AND prod_id=12