Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como lidar com a atualização da consulta MYSQL assim


Você recebe esse erro porque está tentando atualizar o screening table e ao mesmo tempo obtendo os ids dessa mesma tabela (juntamente com users ). A solução para isso é usar uma subconsulta, como tal:
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   

Eu apenas alterei o recuo e adicionei a subconsulta em letras minúsculas.