11

postgresqlでは、結合条件でサブクエリを使用できます

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

しかし、Accessで使用しようとすると

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

構文エラーが発生します。アクセスでは実際に不可能ですか、それとも私の間違いですか?

で同じ結果が得られることは知っていますWHEREが、私の質問はJOINAccessでの可能性についてです。

4

1 に答える 1

13

MSDNのドキュメントによると、それは不可能です。

構文

FROM table1 [LEFT | 右]JOINtable2 ON table1.field1 compopr table2.field2

そして(私の強調):

field1、field2: 結合されるフィールドの名前。フィールドは同じデータ型であり、同じ種類のデータを含む必要がありますが、同じ名前である必要はありません。

結合にハードコードされた値を含めることさえできないようです。結合する列名を指定する必要があります。

あなたの場合、あなたは望むでしょう:

SELECT *
FROM Table1
LEFT JOIN (
    SELECT DISTINCT TOP 1 ID 
    FROM Table2
    ORDER BY ID
) Table2Derived ON Table1.ID = Table2Derived.ID
于 2012-11-26T15:29:46.317 に答える