スポンサーリンク

2008-01-08

Tips124 - 2つのテーブルから共通するレコードのみ取り出す INNER JOIN

SQLにはINTERSECT演算子があるのですが、Accessでは使用できません。
その代わりに「INNER JOIN」を使うと共通レコードを取得できます。

取り出す2つのテーブル例
下の場合、共通するレコードは2番目の「2  石塚」になります。
[T_2007年顧客データ]
顧客ID 名前
1  大木
2  石塚
3  南

[T_2008年顧客データ]
顧客ID 名前
1  結城
2  石塚
3  岡村

Dim SQL As String
Dim rs As Recordset
SQL = "SELECT T_2008年顧客データ.名前,T_2008年顧客データ.顧客ID FROM T_2008年顧客データ INNER JOIN T_2007年顧客データ ON (T_2008年顧客データ.名前=T_2007年顧客データ.名前) AND (T_2008年顧客データ.顧客ID=T_2007年顧客データ.顧客ID) "
Set rs = CurrentDb.OpenRecordset(SQL)
これを実行すると、下記のデータが返ります。
石塚 2