Użycie ~
sugeruje, że używasz Postgresa. Jeśli tak, te dwa zapytania robią bardzo różne rzeczy. W Postgresie nie uwzględniasz aktualizowanej tabeli w from
klauzula.
Myślę więc, że chcesz:
update fromemailaddress
set call = true
from email
where email.fromemailaddress = fromemailaddress.fromemailaddress and
LOWER(email.subject) ~ 'tester';
Twoja wersja aktualizuje wszystkie wiersze w fromemailaddress
ponieważ nie ma warunku łączącego fromemailaddress
w update
klauzula i fea
w from
klauzula.
Uwaga:left join
jest niepotrzebne, ponieważ where
klauzula i tak zamienia ją w sprzężenie wewnętrzne.