複数ある場合JOIN
、Accessのdbエンジンでは括弧を使用する必要があります。
SELECT B.*, C.* INTO Table2
FROM
(Table1 AS A RIGHT JOIN ABC AS B ON A.HKID = B.HKID)
RIGHT JOIN DEF AS C ON B.HKID = C.HKID
WHERE
A.HKID Is Null
AND B.organization Not Like '*xxx*'
AND B.adj=1
AND C.Status='Suspend';
私が使用したことに注意してください...
RIGHT JOIN DEF AS C ON B.HKID = C.HKID
あなたがそれを持っていた方法の代わりに...
RIGHT JOIN DEF AS C ON A.HKID=C.HKID
試したときにAccessが「参加はサポートされていません」と文句を言ったため、この変更ON A.HKID=C.HKID
を行う必要がありました。それでも不十分な場合は、最初からやり直す必要があります。逆の順序でテーブルを使ってこれに取り組み、を使用すると思いますLEFT JOIN
。
また、作成するテーブル( )には、とから派生したとTable2
という名前のフィールドが含まれます。これらの2つのテーブルに共通する他のフィールド名と同じパターンが表示されます。それが受け入れられない場合は、フィールドを個別にリストし、必要に応じてエイリアスを割り当てることができます。B_HKID
C_HKID
B.HKID
C.HKID
Accessがインストールされている場合は、クエリデザイナでこのクエリを作成する必要があります。これにより、データベースエンジンを満足させるために、結合を適切に設定できるようになります。
Accessがインストールされておらず、ADO接続からこのクエリを実行している場合は、Like
文字列パターンのワイルドカード文字をから*
に変更し%
ます。
AND B.organization Not Like '%xxx%'