同人誌PDF版 販売中!!

スポンサー

VB.NET SQL 複数のテーブル(3つ以上)を結合する JOIN句

皆さんこんにちは!こんばんは!!ロト君です。今回は備忘録も兼ねて、SQLのJOIN句で複数のテーブルを結合するモノを記載したいと思います!!

テーブル内容

テーブルの内容は下記のモノです。

IDasset_namebuy_company_idstate
1資産111
2資産212
3資産32
t_asset
IDbuy_company_namepostalnotice
1株式会社AAA000-0001会社の情報1
2有限会社BBB000-0002
3社団法人CCC000-0002会社の情報2
t_buy_company
IDkey_namename1value1
1状態所有1
2状態リース2
状態売却3
所有有限会社GGG1
t_env

上記のように、t_asset, t_buy_company, t_env が、あるとします。これを結合します。

結合式

結合式は下記のモノです。

Dim db As New Connection_DB

db.Sql.AppendLine("SELECT")
db.Sql.AppendLine("T1.ID")
db.Sql.AppendLine(",T1.asset_name")
db.Sql.AppendLine(",T2.buy_company_name")
db.Sql.AppendLine(",T3.name1")
db.Sql.AppendLine("FROM (t_asset AS T1")
db.Sql.AppendLine("LEFT OUTER JOIN t_buy_company AS T2 ON")
db.Sql.AppendLine("T1.buy_company_id = T2.ID)")
db.Sql.AppendLine("LEFT OUTER JOIN t_env AS T3 ON")
db.Sql.AppendLine("T1.state = T3.value1")
db.Sql.AppendLine("WHERE")
db.Sql.AppendLine("T3.key_name = '状態'")

db.Selecter()

'db.resultDt 結果を返すDataTable

結果はこんな感じ。

IDasset_namebuy_company_namename1
1資産1株式会社AAA所有
2資産2株式会社AAAリース
3資産3有限会社BBBリース
DataTable内のデータ

LEFT OUTER JOINをする事によって、左側に属するデータを逆側の参照テーブルに結合するイメージです。

LEFT OUTER JOIN のイメージ

御覧の様に、右側のテーブルの一部が参照対象になります。

3つ以上テーブルを結合する場合は()が必要になってきます。

各テーブルはAS句で別名称に変えると簡単に参照、条件分岐が可能です。

まとめ

C#での説明はネットで探せば多くありましたが、VB.NET版は少なかったので記載した次第です。

Connection_DBなどは自作クラスなので、そこについては割愛しています。基本の、SQL接続でやっています。

SQLをマスターはまだしていませんが、色々構文を修正すると何千倍も高速に処理が出来ますので今回見直しましたww

今後も、改良をしていこうと思いますので、よろしくお願い致します。

では、今回はここまで!(^-^)ノシ≡3

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA