Bonjour,
Je bloque sur une requête depuis quelques temps et je viens donc chercher vos lumières.
J'ai une table t1 dans laquelle j'ai une liste de champs et notamment un id_product (clé primaire) et un id_category
J'ai une table t2 dans laquelle j'ai 3 champs : id_product, id_category, position. Dans cette table, c'est l'ensemble id_product et id_category la clé primaire. C'est à dire qu'un même id_product peut être dans plusieurs catégories. La position détermine l'emplacement du produit dans la catégorie.
Je cherche à insérer les champs qui sont dans t1, dans t2 en ignorant les erreurs. Ca ça va je sais faire.
Là où je bloque c'est pour mettre à jour le champ position. J'ai pensé à faire un MAX(position) + 1 WHERE t1.id_category = t2.id_category mais ça me renvoie une erreur.
Ci-dessous mon code :
et l'erreur que Navicat me renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT IGNORE INTO pre5181_category_product (id_category, id_product, position) SELECT p.id_category_default, p.id_product, MAX(cp.positon) + 1 FROM pre5181_product p, pre5181_category_product cp WHERE p.id_category_default = cp.id_category;
[Err] 1054 - Unknown column 'cp.positon' in 'field list'
En espérant avoir été assez clair.
Merci d'avance pour votre aide !
Partager