[MySQL]

Résolu/Fermé
Siluni - 3 déc. 2009 à 16:15
 Siluni - 4 déc. 2009 à 08:47
Bonjour,
Voila, je souhaite mettre à jour 2 champs dans une table mais lorsque je lance ma requete, il me met bien xxx enregistrement modifié mais aucun ne l'ai réelement.

Voici la requete de l'UPDATE
UPDATE crm_billets AS crm_b
JOIN crm_categories AS crm_c ON(crm_c.cid = crm_b.cid AND crm_c.type="abonnement")
JOIN crm_temp AS crm_temp ON (crm_temp.intitule = crm_c.intitule AND crm_temp.type = "abonnement")
SET crm_b.cid = crm_temp.cid 
AND crm_b.cpid = crm_temp.cpid 
WHERE crm_b.bid IN (SELECT bid FROM crm_abonnements);


Sinon, je l'ai modifier en select avec les bons champs et il me renvoi bien les bonnes données
SELECT crm_b.cid, crm_b.cpid, crm_temp.cid AS cid2, crm_temp.cpid AS cpid2
FROM crm_billets AS crm_b
JOIN crm_categories AS crm_c ON(crm_c.cid = crm_b.cid AND crm_c.type="abonnement")
JOIN crm_temp AS crm_temp ON (crm_temp.intitule = crm_c.intitule AND crm_temp.type = "abonnement")
WHERE crm_b.bid IN (SELECT bid FROM crm_abonnements)


Si une âme daigne à m'aider ^^.

A bientot.

3 réponses

moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
4 déc. 2009 à 07:04
Hello
Je ne suis pas sûr que mysql sache faire ce genre de traitement de cette façon ça là !!
Par contre est ce que tu es sur que join fonctionne bien ?
Je mettrai LEFT JOIN ou INNER JOIN...mais qu'importe si ton SELECT est bon...

A quoi sert WHERE crm_b.bid IN (SELECT bid FROM crm_abonnements);
en plus de tout le reste ?

A mon avis ta requete est compliquée.
Tu voudrais arriver à quoi comme résultat ?
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
4 déc. 2009 à 07:04
Hello
Je ne suis pas sûr que mysql sache faire ce genre de traitement de cette façon ça là !!
Par contre est ce que tu es sur que join fonctionne bien ?
Je mettrai LEFT JOIN ou INNER JOIN...mais qu'importe si ton SELECT est bon...

A quoi sert WHERE crm_b.bid IN (SELECT bid FROM crm_abonnements);
en plus de tout le reste ?

A mon avis ta requete est compliquée.
Tu voudrais arriver à quoi comme résultat ?
0
Je viens de trouver le problème après une longue réflexion...

Champ de nom 'type' étant aussi un keyword MySQL, je doit lui appliquer des `` pour que l'UPDATE se fasse bien.

Pour le condition de where, c'est pour bien être sur des bid qui sont assigné au abonnement.

Je peut mettre des LEFT JOIN mais JOIN fonctionne très bien, et vu que la requête sera exécuter 1 fois, je ne vais pas l'optimiser en temps d'exécution ^^.

Si cette requête est compliqué bah .... j'en fait des plus dur ^^.

Sur ce, problème régler pour ma part.

Merci Moderno31 comme même.
0