Jump to content

Requête SQL Update avec plusieurs tables liées


Recommended Posts

Bonjour, j'ai besoin de faire une petite requête SQL afin de mettre à jour les frais de livraison supplémentaire de mes produits (nb : dans BO ce champ ce trouve dans Produits/Livraison puis frais de livraison supplémentaire) qui ont une certaine caractéristiques.

Soit je souhaite créer un UPDATE de la table ps_product,
définir via SET additional_shipping_cost = XX
avec la condition WHERE id_feature = "ID de ma caractéristique" (table ps_feature_product)
AND id_feature_value = "id de la valeur de ma caractéristique" (table ps_feature_value)

La requête commencée ressemble à :

UPDATE ps_product
SET additional_shipping_cost = 70
WHERE id_feature = 76 AND id_feature_value = 41941

Mais ça ne marche évidemment pas, manque certainement une jointure ?

Auriez-vous une idée ?

Merci d'avance,

Link to comment
Share on other sites

J'ai constaté qu'il fallait modifier la valeur additional_shipping_cost plutôt dans la table ps_product_shop pour que ces fdp supp. soient pris en compte.

Voilà ou j'en suis avec la requête :

UPDATE ps_product_shop ps 
SET ps.additional_shipping_cost = 70 
FROM ps_feature_product fp 
WHERE ps.id_product = fp.id_product
AND id_feature_value = 41941

N'ayant pas de niveau en sql, cette dernière ne fonctionne toujours pas...

Vous l'aurez sinon compris pour les données
70 -> montant des frais de port supplémentaire
41941 -> id de la valeur de la caractéristique en condition

Help !

Link to comment
Share on other sites

On 10/24/2019 at 4:55 PM, Ric34 said:

J'ai constaté qu'il fallait modifier la valeur additional_shipping_cost plutôt dans la table ps_product_shop pour que ces fdp supp. soient pris en compte.

Voilà ou j'en suis avec la requête :

UPDATE ps_product_shop ps 
SET ps.additional_shipping_cost = 70 
FROM ps_feature_product fp 
WHERE ps.id_product = fp.id_product
AND id_feature_value = 41941

N'ayant pas de niveau en sql, cette dernière ne fonctionne toujours pas...

Vous l'aurez sinon compris pour les données
70 -> montant des frais de port supplémentaire
41941 -> id de la valeur de la caractéristique en condition

Help !

Il faut que tu fasses une jointure, la requete devrait ressemble à cela :

UPDATE ps_product_shop ps INNER JOIN ps_feature_product fp ON (ps.id_product = fp.id_product AND fp.id_feature_value=41941) SET ps.additional_shipping_cost=70

Louis

Link to comment
Share on other sites

Bonjour merci pour ce retour, pour info j'ai résolu mon besoin, en y ajoutant la condition d'un fabricant spécifique, avec la requête suivante :

UPDATE ps_product_shop
SET additional_shipping_cost = "Montant des frais de livraison supp."
WHERE  id_product IN ( SELECT id_product
FROM ps_product
WHERE id_manufacturer = "id du fabricant")
AND id_product IN ( SELECT id_product
FROM ps_feature_product
WHERE id_feature_value = "id de la valeur de la caractéristique")

@Eolia : merci pour ton aide

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...