先决条件:在 MS Access 2010 中创建下表:
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);
还要创建一个名为 BVIEW 的视图,它使用以下 SELECT 语句:
SELECT A.ID FROM ATBL AS A WHERE A.ID = 1 OR A.ID = 2
现在 BVIEW 应该和 BTBL 有相同的内容。然而,以下两个查询将返回不同的结果:
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)
第一个查询返回两条记录(1 和 2),但第二个查询返回来自 ATBL 的所有记录。这里有什么问题?我错过了什么吗?