sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres SQL SELECT och UPDATE beter sig annorlunda

Användningen av ~ föreslår att du använder Postgres. Om så är fallet gör de två frågorna väldigt olika saker. I Postgres inkluderar du inte tabellen som uppdateras i from klausul.

Så jag tror att du vill:

update fromemailaddress
    set call = true 
    from email
    where email.fromemailaddress = fromemailaddress.fromemailaddress and
          LOWER(email.subject) ~ 'tester';

Din version uppdaterar alla rader i fromemailaddress eftersom det inte finns något villkor som ansluter fromemailaddress i update klausul och fea i from klausul.

Notera också:left join är onödigt eftersom where klausul förvandlar den till en inre koppling ändå.



  1. Hur väljer man topp 1 och sorteras efter datum i Oracle SQL?

  2. Gör en tabell på fel sätt:transponera kolumner och rader?

  3. Vad är Ångra och gör om i Oracle-databasen

  4. Fel vid installation av psycopg2==2.6.2