alexper Posted June 11, 2016 Share Posted June 11, 2016 Bonjour Je cherche à lier les articles entre eux via l'option "Accessoires" dans le back office (ps_accessory dans la base de données). En gros j'ai une caractéristique (feature) appelée "Collection". Et j'aimerai que les produits partageant la même caractéristique soient les accessoires des uns et des autres. Ca se passe dans la table ps_feature_product qui a 3 champs : id_feature,id_product,id_feature_value L'ID de la caractéristique (feature) qui m'intéresse est le 2. J'ai pensé à quelque chose comme ça INSERT INTO pojs_accessory (id_product_1,id_product_2) SELECT id_product,id_product FROM pojs_feature_product WHERE id_feature=2 GROUP BY id_feature_value Ca ne marche évidemment pas. Link to comment Share on other sites More sharing options...
doekia Posted June 11, 2016 Share Posted June 11, 2016 -- insert ignore into ps_accessories (id_product_1, id_product_2) select fp1.id_product, fp2.id_product from ps_feature_product fp1 inner join ps_feature_product fp2 on fp1.id_feature = fp2.id_feature and fp1.id_product != fp2.id_product where fp1.id_feature = 2 Attention cette requête va générer le produit cartésien en nombre d'enregistrement dans la table ps_accessories donc N x (N - 1) enregistrements. Link to comment Share on other sites More sharing options...
alexper Posted June 12, 2016 Author Share Posted June 12, 2016 (edited) Bonjour et merci ! Cette requête m'a bien lié les produits, mais indépendemment de leur caractéristique "collection". Chaque produit a tout le reste du catalogue en accessoire Il manquait juste une comparaison de leur valeur "id_feature_value". Mais c'est vrai que je ne l'avais pas du tout mis dans ma première requête. Voila le code qui fonctionne bien : insert ignore into ps_accessory (id_product_1, id_product_2) select fp1.id_product, fp2.id_product from ps_feature_product fp1 inner join ps_feature_product fp2 on fp1.id_feature = fp2.id_feature and fp1.id_product != fp2.id_product where fp1.id_feature = 2 and fp1.id_feature_value = fp2.id_feature_value Merci pour ton aide doekia Edited June 12, 2016 by alexper (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted June 12, 2016 Share Posted June 12, 2016 En effet j'avais zappé ta demande sur feature value - my bad Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now