Điều kiện tiên quyết: Trong MS Access 2010 tạo ra các bảng sau:MS Access: WHERE-EXISTS-khoản không làm việc trên quan điểm?
CREATE TABLE ATBL(ID INT);
INSERT INTO ATBL(ID) VALUES (1);
INSERT INTO ATBL(ID) VALUES (2);
INSERT INTO ATBL(ID) VALUES (3);
CREATE TABLE BTBL(ID INT);
INSERT INTO BTBL(ID) VALUES (1);
INSERT INTO BTBL(ID) VALUES (2);
Cũng tạo một cái nhìn gọi BVIEW trong đó sử dụng câu lệnh SELECT như sau:
SELECT A.ID FROM ATBL AS A WHERE A.ID = 1 OR A.ID = 2
Bây giờ BVIEW nên có các nội dung tương tự như BTBL. Tuy nhiên, hai truy vấn sau sẽ trả lại các kết quả khác nhau:
SELECT A.ID FROM ATBL AS A WHERE EXISTS (SELECT 1 FROM BTBL AS B WHERE B.ID=A.ID)
SELECT A.ID FROM ATBL AS A WHERE EXISTS (SELECT 1 FROM BVIEW AS B WHERE B.ID=A.ID)
Truy vấn đầu tiên trả về hai bản ghi (1 và 2), nhưng truy vấn thứ hai trả về tất cả bản ghi từ ATBL. Có gì sai ở đây? Tui bỏ lỡ điều gì vậy?
FWIW mã của bạn hoạt động như mong đợi trên SQL Server. – onedaywhen