AccessのSQL文でJOINを複数テーブルする方法
こんにちは。
今回は、AccessのSQL文でJOINを複数テーブルする方法を記載したいと思います。
何故これを、取り上げるかというかと、AccessのSQL文でJOINの複数テーブルをOracleやSqlServer感覚で記述すると、エラーで実施できません。
かなり、僕はハマってしまいました。SQL文が合っているのに何故エラーが出るのか分からなかった。
この解決方法を記載します。
以下の表をAccessのSQL文で結合する。
エラーが出るSQL文
SELECT ID, T_部署.名称, T_役職.名称 FROM T_社員名簿
LEFT JOIN T_部署 ON 社員名簿.部署No = T_部署.No
LEFT JOIN T_役職 ON 社員名簿.部署No = T_役職.No;
上記の文をAccessで、記述すると、「演算子がありません。」と訳の分からんエラーが出ます(笑)。
エラーが出ないSQL文
回避するには、以下のように()をつけて記載します。
SELECT ID, T_部署.名称, T_役職.名称 FROM (T_社員名簿
LEFT JOIN T_部署 ON 社員名簿.部署No = T_部署.No)
LEFT JOIN T_役職 ON 社員名簿.部署No = T_役職.No;
これは、AccessのSQL文では、3つ以上のテーブルの結合ができないため、()をつけて2つのテーブル結合に偽装して解決しているそうです。
こんな、小手先で解決できるのかあ。