J'ai deux tables contenant des informations sur le produit et des variations de produit. J'essaye de lister tous les produits, et c'est des variations de couleurs.Requête de groupe Mysql
Les produits de la table contient des informations générales est sur le produit (nom, description, permis, etc.)
Le tableau product_attributes contient les différentes options du produit (couleur, taille, etc. prix)
I J'essaie d'obtenir tous les produits disponibles, et si le produit est disponible en deux couleurs, il devrait apparaître comme deux listes. Malheureusement ma requête ci-dessous liste beaucoup plus d'options, car il y aura aussi une rangée pour chaque combinaison de taille.
SELECT pa.price, pa.color, p.id, p.url_key, p.name FROM product_attributes AS pa INNER JOIN products AS p ON pa.product_id = p.id && p.active = 1
Est-ce que quelqu'un a une idée de la façon la plus intelligente et la plus efficace d'y parvenir?
J'espère que vous comprenez ma question
Merci à l'avance,
Cordialement!
id mediumint(7) NO PRI NULL auto_increment
type tinyint(3) NO 1
url_key varchar(54) NO NULL
name varchar(48) NO NULL
description text NO NULL
weight float NO 0
active tinyint(3) NO 0
in_feed tinyint(3) NO 0
tax_class tinyint(3) NO 0
meta_title varchar(48) NO NULL
meta_keywords varchar(48) NO NULL
meta_description text NO NULL
manage_stock tinyint(3) NO 0
attribute_designers_id mediumint(7) NO 0
attribute_size_family_id mediumint(7) NO 0
id mediumint(7) NO PRI NULL auto_increment
product_id mediumint(7) NO MUL NULL
sku varchar(48) NO NULL
price float NO NULL
special_price float NO 0
special_price_from_date datetime NO NULL
special_price_to_date datetime NO NULL
cost float NO 0
new_from_date datetime NO NULL
new_to_date datetime NO NULL
attribute_colors_id mediumint(7) NO NULL
color varchar(24) NO NULL
attribute_sizes_id mediumint(7) NO NULL
quantity mediumint(7) NO 0
J'ai essayé de GROUP BY attribut_colors_id, donc j'obtiens une couleur unique pour chaque produit, puis en ignorant les tailles. Mais cela me donne des couleurs uniques pour tous les produits. par exemple. Si j'ai une couleur jaune pour le produit 1, cela n'apparaîtra qu'une seule fois et ne montrera pas le produit 7 qui a aussi une couleur jaune. – Kristian