Accessでのテーブル結合で悩まされた話 | オタクのネタ帳

プログラミング

Accessでのテーブル結合で悩まされた話

業務でAccessDBを触ることになった。

今までOracleDBしか触ってこなかった自分だけど、

まあSQLなんてどれも大体似てるでしょw

なんて思ってた。

現に似てる部分もあるけど、やっぱり少しずつ違ってくる。

普段AccessDBを触る人にとっては普通なんだろうけども、

結合に関しては、本当に驚かされることが多かったのでご紹介。

テーブル結合でリテラルを使うことができない

これはほんとに驚いた。

以下、例。

超適当な例だけど、

動物マスタ(MST_ANIMAL)生息地マスタ(MST_SEISOKUCHI)があります。

その二つのテーブルを’AREANAME‘で内部結合しました。

ここまではおkなんです。

その後、生息地マスタから気温が’30‘に等しい項目だけをとってこようとすると、エラー吐くんです。

多分「JOIN式はサポートされていません」とかなんとかで怒られる。

逆に以下、うまくいく例。

リテラルを結合句の条件に使いたい場合は、

副問い合わせの中のWhere句で書いてやる必要がある。

めんどくさすぎない?

複数のテーブル結合がめんどくさい

これがまためんどくさい。

以下、うまくいかない例

多分これも「JOIN式がサポートされていません」というエラーで怒られるはず。

以下、うまくいく例

一回目の結合が終わったところで、結合句をカッコで括ってやればよいのだ。

結合するテーブルの数が少ないのであれば別に問題はないが、

4つ5つのテーブルを結合しながら、且つ、結合句にリテラルが入ってくるなら溜ったもんじゃあない。

結合?見にくくなる?With句使えばよくね?

と思うじゃん?

AccessにWith句は存在しないのだ。

結果:AccessSQLはクソ。

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

アクセスカウンター

  • 39125総閲覧数:
  • 181今日の閲覧数:
  • 483昨日の閲覧数:
  • 3495先週の閲覧数:

最近の記事

  1. ニンテンドー64 ミニが発売予定?リーク画像が出回る。
  2. SX OSのライセンスのみを海外のショップで買ってみた結果
  3. 今すぐ最強のセーブデータに?Switchのハック済みセーブデ…
  4. 【噂】新型Switch?「Nintendo Switch P…
  5. Splatoon2にチート対策?公式が声明発表?「Anti-…

カテゴリー

アーカイブ

PAGE TOP