sql >> Databáze >  >> RDS >> PostgreSQL

Postgres SQL SELECT a UPDATE se chovají odlišně

Použití ~ naznačuje, že používáte Postgres. Pokud ano, tyto dva dotazy dělají velmi odlišné věci. V Postgresu nezahrnujete aktualizovanou tabulku do from doložka.

Takže si myslím, že chcete:

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

Vaše verze aktualizuje všechny řádky v fromemailaddress protože neexistuje žádná podmínka pro připojení fromemailaddress v update doložka a fea v from doložka.

Poznámka:left join je zbytečné, protože where klauzule jej stejně změní na vnitřní spojení.



  1. PostgreSQL odstraní všechny záznamy kromě nejstarších

  2. Načíst hierarchii z tabulky, jako je tato

  3. Heroku Error:ActionView::Template::Error (nedefinovaná metoda `captcha' pro #<Message:0x007fc9df016930>)

  4. INSERT INTO ... SELECT bez podrobností o všech sloupcích