2010-09-27 77 views
0

我想寫以下(僞)SQL中的MS Access聲明:如何使用複合鍵與IN關鍵字在MS Access

Select C 
from MyTable 
where (A, B) IN (select distinct A,B from MyTable); 

我試過了,但得到的抱怨:「你已經寫了子查詢可以在不使用主查詢的FROM子句中的EXISTS保留字的情況下返回多個字段。「

我很欣賞任何反饋。

+1

您的查詢看起來像您想要做的:'SELECT A,B,C FROM MyTable',您能否提供您的實際查詢。 – RobertPitt 2010-09-27 16:41:04

+1

我不認爲你可以像這樣使用一個元組來進行'in'的操作,而羅伯特有一個好的觀點:無論如何,這將會返回你表中的所有Cs。 – Rup 2010-09-27 16:48:05

+1

您可能需要包含一些示例數據以及實際代碼。即使這個元組工作,「在(選擇不同的A,B)中的Where(A,B)」似乎會匹配每條記錄。不知道你在做什麼。 – Bill 2010-09-27 17:24:37

回答

0

您可以使用一個內連接作爲一個過濾器:

select c 
from MyTable t1 
inner join 
     (
     select distinct 
       a 
     ,  b 
     from OtherTable 
     ) t2 
on  t1.a = t2.a 
     and t1.b = t2.b 

(我假設你有兩個表,因爲查詢不爲一個表太大的意義很明顯,所有的組合。 B表1中的「也」將在表1中。)