Bonjour,
Je tente de mettre à jour une table contenant des colonne valeur, date, categorie. valeur peut être NULL. La mise à jour consiste à compléter la colonne valeur par date et par catégorie de sorte que la valeur soit égale à la valeur maximale (par date et par catégorie).
Ce code utilisé sous php me retourne l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE table TT INNER JOIN (SELECT MAX(valeur) as Q, categorie as N, date_locale as DT FROM table GROUP BY categorie,date_locale ) T1 SET TT.valeur=Q WHERE TT.valeur IS NULL AND TT.categorie=N AND TT.date_locale=DT
Mais fonctionne lorsque testé sous PHPMYADMIN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Can't reopen table: 'TT'
[EDIT]cela marche sous phpmyadmin car en réalité j'utilise une table temporaire alors que le test phpmyadmin se fait sur une table existante !!! [EDIT]
(je pense que c'est l'explication)
Dans tous les cas comment faire ce type de requête afin d'éviter cette erreur ?
Je précise utiliser MYSQL 5.6.
Partager