私はSQLにかなり慣れておらず、クエリに苦労しています(Access、FWIWを使用)。StackOverflowをGoogleで検索して検索しましたが、この正確なシナリオは見ていません。(これは、正しい検索用語がわからないためかもしれません。)
同様のデータを含む非常に単純なテーブルが2つあります。
table1: state, lname, fname, network
table2: state, lname, fname, network
私が欲しいのは、2つのテーブルで一致する各人/状態の組み合わせと、その人がいる各テーブルのネットワークを見つけることです。
state, lname, fname, t1.network, t2.network.
その人は、各テーブルの複数のネットワークにいる可能性があります。その人が属する各ネットワーク(両方のテーブルから)を確認したいと思います。
私は以下のようにJOINを使用することから始めました:
SELECT t1.state, t1.lname, t1.fname, t1.network, t2.network
FROM t1 INNER JOIN t2
ON t1.fname=t2.fname AND t1.lname=t2.lname AND t1.state=t2.state
GROUP BY t1.state, t1.lname, t1.fname, t1.network, t2.network
デカルト積を取得していることがすぐにわかりました。したがって、「NY、Smith、John」がt1の2つのネットワークにあり、t2の3つのネットワークにある場合、次のようになります。
NY, Smith, John, NetworkA, NetworkB
NY, Smith, John, NetworkA, NetworkA
NY, Smith, John, NetworkB, NetworkA
NY, Smith, John, NetworkB, NetworkB
NY, Smith, John, NetworkA, NetworkC
NY, Smith, John, NetworkB, NetworkC
私が本当に見たいのはただ:
NY, Smith, John, NetworkA, NetworkA
NY, Smith, John, NetworkB, NetworkB
NY, Smith, John, NULL, NetworkC
誰かが私に進む方法や正しい方向に私を向ける方法についてアドバイスをくれますか?