Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment gérer la mise à jour des requêtes MYSQL comme celle-ci

Vous obtenez cette erreur, car vous essayez de mettre à jour le screening table et en même temps obtenir les identifiants de cette même table (jointe avec users ). La solution de contournement consiste à utiliser une sous-requête, en tant que telle :

UPDATE screening
   SET maileddate = date('Y-m-d', strtotime($mailed_date[$screeningId]))
 WHERE user_id IN (  
                    select s.id
                      from (

                        SELECT users.id
                          FROM users
                         INNER JOIN screening ON 
                                        users.id = screening.users_id
                                AND screening.id = {$screeningId}
                    ) as s)
   AND date BETWEEN 05-15/2011 AND 11-15-2011
LIMIT 2   

J'ai seulement changé l'indentation et ajouté la sous-requête en minuscules.