Önkoşullar: MS Access 2010'da aşağıdaki tablo oluşturmak:MS Access: WHERE-EXISTS cümlesi görünümler üzerinde çalışmıyor mu?
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);
Ayrıca bu sorgu kullanan bir görünüm olarak adlandırılır BVIEW oluşturun:
SELECT A.ID FROM ATBL AS A WHERE A.ID = 1 OR A.ID = 2
Şimdi BVIEW BTBL ile aynı içeriğe sahip olmalıdır. Yine aşağıdaki iki sorgular farklı sonuçlar verir:
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)
ilk sorgu iki kayıtları (1 ve 2), ancak ikinci sorgu ATBL tüm kayıtları verir döndürür. Burada neyin var? Bir şey mi eksik?
FWIW kodunuz SQL Server'da beklendiği gibi çalışır. – onedaywhen