Page 1 sur 1

Jointure a n'y rien comprendre

Posté : 16 déc. 2015, 23:51
par totopasbo
Bonjour,

Bonsoir,

J'ai besoin de faire un update par tache cron d'un champ d'une table
J'ai suivi tous les exemples possibles, j'en suis là mais tout tourne sans fin ...

Mes besoin : prendre sur les deux tables l'id d'une commande (id similaire) pour faire le lien entre le champ voulu

ensuite sur une des tables, prendre la référence 100000 pour faire un update de l'autre table dans un autre champ (valeur 3 ici) ...

Ca ne fonctionne pas, help !

Merci a tous :)

Code : Tout sélectionner

$data2 = "UPDATE " . TABLE_CUSTOMERS_POINTS_PENDING . " p , " . TABLE_ORDERS_STATUS_HISTORY . " o SET p.points_status = 3 WHERE p.orders_id = o.orders_id and o.orders_status_id = 100000"; $request = mysql_query($data2) or die('Erreur SQL !<br>'.$data2.'<br>'.mysql_error()); $datas = ($request); echo $datas;
J'ai aussi essayé :

Code : Tout sélectionner

$data2 = "UPDATE " . TABLE_CUSTOMERS_POINTS_PENDING . " p JOIN " . TABLE_ORDERS_STATUS_HISTORY . " o ON p.orders_id = o.orders_id SET p.points_status = 3 WHERE o.orders_status_id = 100000"; $request = mysql_query($data2) or die('Erreur SQL !<br>'.$data2.'<br>'.mysql_error()); $datas2015 = ($request); echo $datas2015;
snif ....

Re: Jointure a n'y rien comprendre

Posté : 17 déc. 2015, 01:07
par Ascla
Salut,
"UPDATE ".TABLE_CUSTOMERS_POINTS_PENDING."
 SET points_status = 3
 WHERE orders_id IN (SELECT orders_id 
                     FROM ".TABLE_ORDERS_STATUS_HISTORY."
                     WHERE orders_status_id = 100000);"
Je pense que ceci devrait fonctionner.

Belle soirée.