同じ sql-server データベースに、2 つの連続した四半期のアプリケーション名とユーザー名 (とりわけ) を格納する 2 つのテーブルがあります。私が欲しいのは、テーブル B にないテーブル A のユーザーとその逆を示す完全な結合です。
編集: table_a と table_b の両方に、AppName と Username が同じ値を持つ 2 つ以上のレコードが含まれているため、DISTINCT が必要になります。これを反映するために、以下の例を編集しました。
テーブル a:
-----------------------
| AppName | Username |
-----------------------
| app1 | jdoe |
| app1 | jsmith |
| app1 | jdoe |
| app2 | jsmith |
-----------------------
テーブル_b:
-----------------------
| AppName | Username |
-----------------------
| app1 | fbar |
| app1 | jsmith |
| app1 | jboehner |
| app1 | fbar |
| app3 | jboehner |
-----------------------
SQL:
SELECT DISTINCT a.username as q2, b.username as q3
FROM tablea as a
FULL JOIN tableb as b
ON a.username = b.username
WHERE a.appname = 'app1'
AND b.appname = 'app1'
期待される結果:
-----------------------
| q2 | q3 |
-----------------------
| jdoe | |
| jsmith | jsmith |
| | fbar |
-----------------------
| | jboehner |
-----------------------
実結果:
-----------------------
| q2 | q3 |
-----------------------
| jsmith | jsmith |
-----------------------
何を与える??