Accessで直接SQLを記述する場合、3つ以上のテーブルを結合する時には括弧をつける必要があります。
次の3つのテーブルを例に挙げます。
フィールド名 | データ型 |
---|---|
名簿ID | オートナンバー |
氏名 | 短いテキスト |
職業ID | 数値型 |
都道府県ID | 数値型 |
フィールド名 | データ型 |
---|---|
職業ID | 数値型 |
職業名 | 短いテキスト |
フィールド名 | データ型 |
---|---|
都道府県ID | 数値型 |
都道府県名 | 短いテキスト |
ここで2つのテーブルをLEFT JOINしてみます。
次の記述は正常に実行されます。
SELECT 氏名, 職業名 FROM 名簿 LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID
次に3つのテーブルをLEFT JOINします。
これは「演算子がありません。」とエラーがでます。
SELECT 氏名, 職業名, 都道府県名 FROM 名簿 LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID LEFT JOIN 都道府県 ON 名簿.都道府県ID = 都道府県.都道府県ID
これは次のように括弧で囲むと正常に実行できます。
SELECT 氏名, 職業名, 都道府県名 FROM ( 名簿 LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID ) LEFT JOIN 都道府県 ON 名簿.都道府県ID = 都道府県.都道府県ID
以降、JOINするテーブルが増えるたびに括弧で囲むことになります。
同社製品のSQL Serverとは違いますね。
[使用環境]
Access 2013