我将尽力为这个查询获取一些真实数据我很难用。
表层次结构集:
HierarchySetId ClientId
22 1866
23 1866
表用户:
UserId UserName ClientId
76 TestUser 1866
表格LinkTable:
LinkId UserId OrganisationId HierarchySetId
20241 76 1822 23
20242 76 1877 23
现在,关于“LinkTable”“OrganisationId”字段的注释是它们只是与这些表中的任何一个都无关的引用,它只是一个示例,说明用户如何在此表中具有相同的UserId和HierarchySetId
我在这里要做的是指定一个HierarchySetId和一个ClientId - 我需要找到那个ClientId的所有用户,这个用户在Linktable中没有该HiearchySetId的行 - 我绝对是STUMPED! - 我正在使用SQL Server 2008。
谢谢!
编辑:感谢下面的Preet,最后的查询就像这样:
SELECT *
FROM User u
INNER JOIN HierarchySet h ON h.ClientId = u.ClientId
LEFT OUTER JOIN LinkTable l ON
l.HierarchySetId = h.HierarchySetId
AND u.UserId = l.UserId
WHERE l.HierarchySetId IS NULL and l.UserId IS NULL
AND u.ClientId = xxxxxx
AND h.HierarchySetId = xxxxxx
答案 0 :(得分:1)
select *
from user u
inner join hierarchyset h on h.clientid = u.clientid
left outer join linktable l on
l.hierarchsetid = h.hierarchsetid
and u.userId = l.userId)
where l.hierarchsetid is null and l.userId isnull