考虑这两个表:
职位(positionid,positiontext,reportstopositionid)
用户(userid,positionid)
如何在一个查询中检查用户是否有任何下属? 它甚至可能吗?
下属: 具有positionid的用户(a)至少有一个或多个下属,如果存在任何用户(b),其中user(a)的positionid作为reportstopositionid给用户(b)对应的positionid
答案 0 :(得分:2)
这将返回拥有下属的用户:
SELECT *
FROM User u
WHERE EXISTS (
SELECT 1
FROM Position p
WHERE p.reportstopositionid = u.positionid
)
答案 1 :(得分:1)
这个怎么样?
SELECT DISTINCT a.*
FROM user a
INNER JOIN position b
ON a.userID = b.reportstopositionID
此查询返回的记录是在userid
列的position
表上具有匹配ID reportstopositionID
的记录
答案 2 :(得分:1)
我认为您希望使用where
子句执行此操作:
select u.*
from user u
where u.positionId in (select reportstopositionid from position p)
这将获得匹配的用户列表,没有重复。