SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
previous arrowprevious arrow
next arrownext arrow
 
Shadow
VBA

Access SQL 複数(2,3,4)テーブルの結合(JOIN)

Accessで複数テーブルを結合する時に、書き方が分からず苦労しました。

他のサイトでも3テーブルの結合までは書いていたのですが、4つ以上の書き方がありませんでした。

備忘録として残しておきます。

実際に作ったファイルはこちらからダウンロードできます。

SQLの知識が必要なので、ゼロからはじめるデータベース操作がおすすめです。

Access SQLで2テーブルの結合

2つのテーブルを結合する場合の書き方です。

GoodsテーブルとRecipeテーブルを結合する場合を例にします。

抽出元

■Goodsテーブル

Goods_cd Goods_name price calorry
101004 ビーフカツランチ 880 0

■Recipeテーブル

goods_cd food_cd necessary_num
101004 201110 5
101004 201111 5
101004 201112 10
101004 201114 30
101004 201115 5
101004 201116 10
101004 201124 50
101004 201143 5
101004 201145 120
101004 201146 5
101004 201147 50

SQL

SELECT
 Goods.Goods_cd
,Goods.Goods_name
,Goods.price
,Recipe.food_cd
,Recipe.necessary_num
FROM Goods

LEFT JOIN Recipe
ON (Goods.Goods_cd = Recipe.goods_cd)

WHERE Goods.Goods_cd = 101004

ポイントとしては、

LEFT JOIN Recipe ON (Goods.Goods_cd = Recipe.goods_cd)

のようにON以降を()で囲む必要があることです。

VBA C# オススメ参考書プログラミングの参考書でオススメの紹介をしていきます。 それぞれ私が使っている言語のみです。 VBAのオススメ参考書をExc...

Access SQLで3テーブルの結合

3つのテーブルを結合する場合の書き方です。

先ほどのGoodsテーブルとRecipeテーブルに加えて、

Foodsテーブルを結合する場合を例にします。

抽出元

■Foodsテーブル

foods_cd foods_name supplier_cd
201110 濃口しょうゆ 301200
201111 ウスターソース 301200
201112 中濃ソース 301200
201114 サラダ油 301107
201115 ゴマ油 301107
201116 ラード 301106
201124 冷凍ほうれん草 301103
201143 パセリ 301103
201145 牛ロース肉 301108
201146 トマトケチャップ 301200
201147 ナチュラルポテト 301103

SQL

SELECT
Goods.Goods_cd
,Goods.Goods_name
,Goods.price
,Recipe.food_cd
,Foods.foods_name
,Foods.supplier_cd

FROM (Goods

LEFT JOIN Recipe 
ON (Goods.Goods_cd = Recipe.goods_cd))

LEFT JOIN Foods
ON (Recipe.food_cd = Foods.foods_cd)

WHERE Goods.Goods_cd = 101004

ポイントはFROM直後~一つ目のJOINが終わるところまでを()で囲むところです。

FROM (Goods
LEFT JOIN Recipe
ON (Goods.Goods_cd = Recipe.goods_cd))

 

RecordSetからcsv、tsvファイルを出力するAccessのテーブルからtsvファイルを出力しようとしたところ、意外と簡単に出す方法がありませんでした。 備忘録のために残してお...

Access SQLで4テーブルの結合

3つのテーブルを結合する場合の書き方です。

先ほどのGoodsテーブル、Recipeテーブル、Foodsテーブルに加えて、

Supplierテーブルを結合する場合を例にします。

抽出元

■Supplierテーブル

supplier_cd supplier_name
301103 ライヘルフ
301106 流通パートナーズ
301107 全食
301108 大地
301200 キッコーマン

SQL

SELECT
Goods.Goods_cd
,Goods.Goods_name
,Goods.price
,Recipe.food_cd
,Foods.foods_name
,Foods.supplier_cd
,Supplier.supplier_cd
,Supplier.supplier_name

FROM ((Goods

LEFT JOIN Recipe 
ON (Goods.Goods_cd = Recipe.goods_cd))

LEFT JOIN Foods
ON (Recipe.food_cd = Foods.foods_cd))

LEFT JOIN Supplier
ON (Foods.supplier_cd = Supplier.supplier_cd)

WHERE Goods.Goods_cd = 101004

ポイントはFROM直後~二つ目のJOINが終わるところまでを()で囲むところです。

FROM ((Goods
LEFT JOIN Recipe
ON (Goods.Goods_cd = Recipe.goods_cd))
LEFT JOIN Foods
ON (Recipe.food_cd = Foods.foods_cd))

結合テーブルが増えた時の書き方パターン

結合するテーブル数が5、6、7…と増えても()で囲む数が増えていくだけです。

2,3,4テーブルはすべてテーブル単位の()に色付けして分かりやすくしています。

これを覚えておけば問題ありません。

おすすめのプログラミングスクール めざせ就職・年収アップ! プログラミングを独学でされている人は意外と多いです。 ただ、プログラミングの独学は簡単にはいきません。 自分だけの力...
プログラミング初心者の独学方法 文系卒の経験談 私はIT系の会社に勤めて4年目ですが、最初の1年は開発をさせてもらえませんでした。 文系卒でプログラミング経験はなかったの...
プログラミングの独学とはエラーとの闘い プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。 私も最初はエラーが出るたびにいちいちビビッて、意味...

・Access の SQL で 3つ以上の表を join する
https://qiita.com/Takashi_Noboru/items/f188eddb241d18896795
・【Access VBA】【SQL】 3つ以上の表を結合⇒LEFT JOIN
http://tibirobo.jpn.org/?p=91
・複数テーブルをつなげてレコードを結合する 《ユニオン クエリ》
https://www.helpforest.com/access/ob_query/ac050007.htm

ABOUT ME
LooseCarrot
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事