前提条件:MS Accessで2010以下の表を作成します。今BVIEWがBTBLと同じ内容を持つべきMS Access:WHERE-EXISTS節はビューでは機能しませんか?
SELECT A.ID FROM ATBL AS A WHERE A.ID = 1 OR A.ID = 2
:
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);
はまた、次のSELECT文を使用していますBVIEWというビューを作成します。それにもかかわらず、次の2つのクエリが異なる結果を返す:
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からすべてのレコードを返します。ここで何が間違っていますか?何か不足していますか?
FWIW SQL Serverでコードが正常に動作します。 – onedaywhen