Lors de l'exécution de requêtes MySQL impliquant la mise à jour d'un et en la référençant comme source de données dans la même requête, vous pouvez rencontrer l'erreur « La table est spécifiée deux fois ». Cette erreur se produit lorsque la même table est à la fois la cible de l'instruction UPDATE et apparaît comme une table distincte dans la sous-requête utilisée pour déterminer les critères de mise à jour.
Pour résoudre cette erreur et mettre à jour avec succès la table souhaitée, suivez ces étapes :
SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)
SELECT * FROM (SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)) AS subquery
UPDATE manager SET status = 'Y' WHERE branch_id IN ( SELECT branch_id FROM subquery );
En utilisant une table dérivée, vous évitez de spécifier la table du gestionnaire à la fois comme cible et la source de données, résolvant l'erreur « La table est spécifiée deux fois ». Cette technique garantit que la sous-requête n'est référencée qu'une seule fois et permet à l'instruction UPDATE de s'exécuter avec succès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!