我有2张这样的表:
CREATE TABLE [dbo].[M_FirstTable](
-- ...
[SomeId] [bigint] NOT NULL,
-- ...
)
CREATE TABLE [dbo].[M_SecondTable](
-- ...
[SomeId] [bigint] NOT NULL,
-- ...
)
我如何检查:这两个表是否等于其项目的所有SomeId字段?
例如:如果FirstTable = {{SomeId = 1},{SomeId = 2}}和SecondTable = {{SomeId = 1}},则这两个表不是eqaul,因为没有SomeId = 2的元素在SecondTable中。
答案 0 :(得分:3)
这也可能是一个有用的查询:
SELECT a.[SomeId],
b.[SomeId]
FROM M_FirstTable a
FULL OUTER JOIN M_SecondTable b
ON a.[SomeId] = b.[SomeId]
WHERE a.[SomeId] IS NULL
OR b.[SomeId] IS NULL
1。当a。[SomeId]不为null时,它只出现在第一个表中。
答案 1 :(得分:1)
也许是这样的:
Select SomeId From FirstTable
Except
Select SomeId From SecondTable
Union All
Select SomeId From SecondTable
Except
Select SomeId From FirstTable
这将生成FirstTable中不在SecondTable中的所有行的结果集,以及SecondTable中不在FirstTable中的所有行的结果集。