我只想从表2中检索不是与表2相关的常见值,如下图所示。
如何显示不常见的值,如下图所示
这是我正在使用的查询,但它没有显示我预期的结果
select * from t1.* from Table1 t1 inner join Table2 t2 on t1.Name <> t2.Name
答案 0 :(得分:1)
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null
OR TableB.id IS null
在外连接的情况下,在其他行中不存在非常见行,在每行中生成NULL字段。我们基本上就是这样选择的。
答案 1 :(得分:0)
使用Except
和Union All
。不确定为什么"SQL 2K12"
在结果中,因为它存在于两个表中
select col from table1
except
select col from table2
Union all
select col from table2
except
select col from table1
答案 2 :(得分:0)
另一个选择
Select col
From (
Select col from Table1
Union All
Select col from Table2
) A
Group By col
Having count(*)=1
答案 3 :(得分:0)
这是根据你的例子
SELECT * -- or SELECT COALESCE(t1.Name,t2.Name) As Name
FROM
Table1 t1
FULL OUTER JOIN Table2 t2 ON t1.Name = t2.Name
WHERE
t1.Name IS NULL OR t2.Name IS NULL;
如果两个表中只有一列(或两个表具有相同的列),并且您不希望重复这些列
SELECT *
FROM
Table1
UNION
SELECT *
FROM
Table2
EXCEPT
(
SELECT *
FROM
Table1
INTERSECT
SELECT *
FROM
Table2
)