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

Postgres SQL SELECT et UPDATE se comportent différemment

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.