我对这两个查询的结果感到惊讶。我对两者的期望相同。我有两个共享一个公共字段的表,但没有建立关系。table( A
) 有一个字段EventID varchar(10)
,table( B
) 有一个字段XXNumber varchar(15)
。
表列中的值在表B
列XXNumber
中引用。尽管可以容纳 15 个字符,但 179K 行数据中没有一个长度超过 10 个字符。A
EventID
XXNumber
所以要求是:
“为避免重复表B和表A条目,如果XXNumber包含在表A>“事件ID”编号中,则不应计算在内。”
要查看我有多少常见记录,我首先运行了这个查询 - 称之为查询 alpha"
SELECT dbo.TableB.XXNumber FROM dbo.TableB WHERE dbo.TableB.XXNumber in
( select distinct dbo.TableA.EventId FROM dbo.TableA )
结果是 5322 行。
以下查询 - 称之为查询增量,如下所示:
SELECT DISTINCT dbo.TableB.XXNumber, dbo.TableB.EventId
FROM dbo.TableB INNER JOIN dbo.TableA ON dbo.TableB.XXNumber= dbo.TableB.EventId
已返回 4308 行。
结果的行数不应该相同吗?