L'utilisation de ~
suggère que vous utilisez Postgres. Si tel est le cas, les deux requêtes font des choses très différentes. Dans Postgres, vous n'incluez pas la table mise à jour dans le from
clause.
Donc, je pense que vous voulez :
update fromemailaddress
set call = true
from email
where email.fromemailaddress = fromemailaddress.fromemailaddress and
LOWER(email.subject) ~ 'tester';
Votre version met à jour toutes les lignes dans fromemailaddress
car il n'y a aucune condition reliant fromemailaddress
dans la update
clause et fea
dans le from
clause.
A noter également :la left join
n'est pas nécessaire car le where
la clause le transforme quand même en une jointure interne.