SQLを用いて2つのテーブルを結合します。
結合方法は片方のテーブルの全レコードに対して合致するもう一方のテーブルのレコードを反映したもので、左外部結合と呼ばれるものです。
●詳細●
ここでは授業「統計力学1」に主席した学生が「量子力学1」に出席したかどうかを表示させます。
(テーブル)
「量子力学1」
学生番号 出席者名
0002 田中 和明
0003 平野 彩子
0004 葛城 孝史
0006 新田 哲也
0007 山本 雅治
0008 内野 義昭
0010 稲垣 友子
「統計力学1」
学生番号 出席者名
0001 森上 偉久馬
0002 田中 和明
0004 葛城 孝史
0006 新田 哲也
0008 内野 義昭
0003 平野 彩子
0009 青木 俊之
●サンプルプログラム●
Private Sub SQL_左外部結合()
Dim cn As New ADODB.Connection
Dim cmd As ADODB.Command
Dim cat As New ADOX.Catalog
Dim strSQL As String
Set cn = New ADODB.Connection
cn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\NorthWIND.MDB"
cn.Open
cat.ActiveConnection = cn
'左外部結合
strSQL = "SELECT 統計力学1.学生番号, 統計力学1.出席者名, 量子力学1 _
.出席者名 " & "FROM 統計力学1 LEFT JOIN 量子力学1 ON 統計力学1 _
.学生番号 = 量子力学1.学生番号;"
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = strSQL
cat.Views.Append "左外部結合クエリ", cmd
cn.Close
Set cmd = Nothing
Set cn = Nothing
Set cat = Nothing
End Sub
●動作確認●
新たにクエリー「左外部結合クエリ」が以下のように表示ます。
学生番号 統計力学1.出席者名 量子力学1.出席者名
0001 森上 偉久馬
0002 田中 和明 田中 和明
0004 葛城 孝史 葛城 孝史
0006 新田 哲也 新田 哲也
0008 内野 義昭 内野 義昭
0003 平野 彩子 平野 彩子
0009 青木 俊之