Prerequisites: In MS Access 2010 create the following tables:
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);
Also create a view called BVIEW which uses the following SELECT statement:
SELECT A.ID FROM ATBL AS A WHERE A.ID = 1 OR A.ID = 2
Now BVIEW should have the same contents as BTBL. Nevertheless the following two queries will return different results:
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)
The first query returns two records (1 and 2), but the second query returns all records from ATBL. What's wrong here? Am I missing something?