【发布时间】:2018-02-13 07:42:37
【问题描述】:
所以...
select COUNT(*) cnt from docDocument d
inner join tblAttachment a on d.AttachmentID = a.ID
where
a.ContainerID = 1
返回 6673
select COUNT(*) from tblAttachment
where
ContainerID = 1
返回 10372
select COUNT(*) cnt from docDocument d
right join tblAttachment a on d.AttachmentID = a.ID
where
a.ContainerID = 1
AND
d.ID IS NULL
返回 3699,因为 10372 - 6673 = 3699 是有意义的
SELECT COUNT(*) FROM
(
select ID from tblAttachment a
where
a.ContainerID = 1
Except
(
SELECT AttachmentId from docDocument
)
) tst
不出所料地返回 3699...但是...
select COUNT(*) from tblAttachment a
where
a.ContainerID = 1 AND
a.ID NOT IN
(
SELECT d.AttachmentId from docDocument d
)
我期待它返回 3699,但令人惊讶的是它返回 0。
谁能解释一下这些结果?
【问题讨论】:
标签: sql sql-server azure-sql-database sql-server-2016