PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Câu lệnh Postgresql IN

Hành vi này đúng theo tiêu chuẩn ANSI.

Nếu tên cột không đủ tiêu chuẩn không giải quyết được trong phạm vi bên trong thì phạm vi bên ngoài sẽ được xem xét. Vì vậy, hiệu quả là bạn đang thực hiện một truy vấn phụ tương quan không chủ ý.

Miễn là bảng profile chứa ít nhất một hàng sau đó

 FROM users
 WHERE user_id IN (
        SELECT user_id FROM profile
        )

sẽ kết thúc khớp với tất cả các hàng trong users (ngoại trừ bất kỳ nơi nào users.user_id IS NULL dưới dạng WHERE NULL IN (NULL) không đánh giá đúng). Để tránh vấn đề có thể xảy ra này, bạn có thể sử dụng hai tên bộ phận.

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

Sẽ đưa ra lỗi




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL 12:Triển khai K-Nearest Neighbor Space Partitioned Generated Tree Indexes

  2. ràng buộc duy nhất về kiểu dữ liệu Bytea trên Postgresql

  3. Màu sắc trong dấu nhắc psql

  4. Số học cột ngày trong truy vấn PostgreSQL

  5. Khai báo biến loại hàng trong PL / pgSQL