【发布时间】:2013-10-10 21:22:55
【问题描述】:
我在同一个 sql-server 数据库中有两个表,用于存储连续两个季度的应用程序名称和用户名(以及其他内容)。我想要的是一个完全联接,它显示表 A 中不在表 B 中的用户,反之亦然。
编辑: table_a 和 table_b 都包含两个或多个记录,其中 AppName 和 Username 具有相同的值,因此需要 DISTINCT。我编辑了下面的示例以反映这一点。
table_a:
-----------------------
| AppName | Username |
-----------------------
| app1 | jdoe |
| app1 | jsmith |
| app1 | jdoe |
| app2 | jsmith |
-----------------------
table_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 |
-----------------------
什么给了??
【问题讨论】:
标签: sql sql-server