Otrzymujesz ten błąd, ponieważ próbujesz zaktualizować screening
tabeli i jednocześnie pobranie identyfikatorów z tej samej tabeli (połączonej z users
). Rozwiązaniem tego problemu jest użycie podzapytania:
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
Zmieniłem tylko wcięcie i dodałem podzapytanie małymi literami.