2012-11-26 8 views
6

w PostgreSQL mogę wykorzystać podzapytania w warunku złączeniaCzy można używać podkwerendy w warunku dołączania w programie Access?

SELECT * 
FROM table1 LEFT JOIN table2 
    ON table1.id1 = (SELECT id2 FROM table2 LIMIT 1); 

Ale gdy próbuję go użyć w programie Access

SELECT * 
FROM table1 LEFT JOIN table2 
    ON table1.id1 = (SELECT TOP 1 id2 FROM table2); 

otrzymuję błąd składni. Czy jest to w ogóle niemożliwe w Accessie lub po prostu mój błąd?

Wiem, że mogę uzyskać ten sam wynik z WHERE, ale moje pytanie dotyczy możliwości JOIN w Access.

Odpowiedz

8

To nie jest możliwe, za tym MSDN documentation:

Składnia

FROM Tabela1 [left | RIGHT] JOIN tabela2 ON table1.field1 compopr table2.field2

oraz (kopalni nacisk):

pole1, Pole2: Nazwy pól, które są połączone. Pola muszą być tego samego typu i zawierać ten sam rodzaj danych, ale nie muszą mieć tej samej nazwy.

Wygląda na to, że nie możesz nawet mieć zakodowanych wartości w swoim sprzężeniu; musisz podać nazwę kolumny, z którą chcesz się połączyć.

w Twoim przypadku, co chcesz:

SELECT * 
FROM Table1 
LEFT JOIN (
    SELECT DISTINCT TOP 1 ID 
    FROM Table2 
    ORDER BY ID 
) Table2Derived ON Table1.ID = Table2Derived.ID 
+0

+1 ruszam z dala od sub-zapytań w prawie wszystkich przypadkach jako tabele pochodzące dać większą wydajność w większości przypadków –

Powiązane problemy