J'ai deux tables (mysql) l'une contenant divers infos (prix, id ... ) sur mes produits l'autre contenant les informations techniques. Parce que le label de ces informations varient d'un produit à l'autre, il y a un champ pour le label et un champ pour la valeur de l'information.
Table produit :
Code : Tout sélectionner
CREATE TABLE produit (
products_id int NOT NULL,
products_price int,
PRIMARY KEY (products_id)
);Code : Tout sélectionner
CREATE TABLE informations_produit (
products_id int NOT NULL,
products_fields_label int NOT NULL,
products_fields_value varchar(64),
PRIMARY KEY (products_id,products_fields_id)
);Par exemple, les produits pour lesquels il y aurait, dans la table informations_produit, un label pays avec valeur France.
Ce qui donne cette requête :
Code : Tout sélectionner
SELECT p.products_id,p.products_price FROM produits p LEFT JOIN informations_produit ip on p.products_id = ip.products_id WHERE ip.products_fields_label = 'Pays' and ip.products_fields_value = 'France'Merci de l'aide
EDIT --------
Bon a priori il faut que je passe par une sous-requête du genre :
Code : Tout sélectionner
SELECT COUNT( * )
FROM informations_produit ip
WHERE ip.products_id = ' ??? '
AND ((ip.products_fields_value = 'France' AND ip.products_fields_label = 'Pays)
OR (ip.products_fields_value = 'Toulouse' AND ip.products_fields_label = 'ville'))

