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. この記事へのトラックバックはありません。

アクセスカウンター

  • 74253総閲覧数:
  • 109今日の閲覧数:
  • 440昨日の閲覧数:
  • 3285先週の閲覧数:

Twitterもやってます!

最近の記事

  1. マンション・アパートでも大丈夫!回線をIPv6に変えよう!!…
  2. 超便利!?Switch用のUSB増設ハブを買ってみた
  3. 【新年のご挨拶】あけましておめでとうございます。
  4. ニンテンドー64 ミニが発売予定?リーク画像が出回る。
  5. SX OSのライセンスのみを海外のショップで買ってみた結果

カテゴリー

アーカイブ

PAGE TOP