Đọ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