我在同一个 sql-server 数据库中有两个表,它们存储连续两个季度的应用程序名称和用户名(除其他外)。我想要的是一个完全联接,它显示表 A 中不在表 B 中的用户,反之亦然。
编辑: table_a 和 table_b 都包含两个或多个记录,其中 AppName 和 Username 具有相同的值,因此需要 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 |
-----------------------
是什么赋予了??