PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pernyataan Postgresql IN

Perilaku ini benar menurut standar ANSI.

Jika nama kolom yang tidak memenuhi syarat tidak diselesaikan di lingkup dalam maka lingkup luar akan dipertimbangkan. Jadi secara efektif Anda melakukan subkueri berkorelasi yang tidak disengaja.

Selama tabel profile berisi setidaknya satu baris maka

 FROM users
 WHERE user_id IN (
        SELECT user_id FROM profile
        )

akhirnya akan cocok dengan semua baris di users (kecuali di mana users.user_id IS NULL sebagai WHERE NULL IN (NULL) tidak bernilai benar). Untuk menghindari kemungkinan masalah ini, Anda dapat menggunakan dua nama bagian.

DELETE FROM users
WHERE  user_id IN (SELECT p.user_id
                   FROM   profile p) 

Akan memberikan kesalahan




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kloning data hierarkis

  2. Django, mod_wsgi, psycopg2 ImproperlyConfigured:Kesalahan memuat modul psycopg2:Tidak ada modul bernama _psycopg

  3. Bagaimana cara menggabungkan tabel di regex

  4. Menemukan catatan unik, diurutkan berdasarkan bidang terkait, dengan PostgreSQL dan Rails 3?

  5. Cara menggunakan ST_Intersects dalam klausa WHERE