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

KHÔNG TRONG truy vấn ... kết quả kỳ lạ

Đọc phần này: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684

Đối với những gì tôi hiểu, cudsubq.new_user_id của bạn có thể là NULL mặc dù cả hai bảng đều được kết hợp bởi user_id , do đó, bạn sẽ không nhận được kết quả bằng cách sử dụng NOT IN toán tử khi tập hợp con chứa NULL giá trị . Hãy xem xét ví dụ trong bài viết:

select * from dual where dummy not in ( NULL )

Điều này không trả về hồ sơ. Hãy thử sử dụng NOT EXISTS toán tử hoặc chỉ một loại tham gia khác. Đây là một nguồn tốt: http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Và những gì bạn cần là ví dụ thứ tư:

SELECT COUNT(descr.user_id)
FROM 
    user_profile prof
    LEFT OUTER JOIN user_desc descr
        ON prof.user_id = descr.user_id 
WHERE descr.new_user_id IS NULL
    OR descr.new_user_id != prof.user_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-06502:PL / SQL:lỗi số hoặc giá trị:bộ đệm chuỗi ký tự quá nhỏ - Đang thực thi bằng giao diện OCI

  2. Kết nối với cơ sở dữ liệu Oracle trong ứng dụng dotnet mvc

  3. Tạo giao diện người dùng đơn giản để truy cập cơ sở dữ liệu Oracle

  4. Chuyển đổi giữa mệnh đề để kết hợp

  5. Oracle RAC N + 1 Dự phòng