0

これらの2つのテーブルを検討します。

Position(positionid、positiontext、reportstopositionid)

User(userid、positionid)

1つのクエリでユーザーに部下がいるかどうかを確認するにはどうすればよいですか?それも可能ですか?

部下:positionidを持つユーザー(a)は、ユーザーが存在する場合、少なくとも1つ以上の部下を持ちます(b)ユーザーのpositionidを持つユーザー(a)ユーザーへのreportstopositionidとして(b)対応するpositionid

4

3 に答える 3

2

これにより、部下を持つユーザーが返されます。

SELECT *
FROM   User u
WHERE  EXISTS (
           SELECT 1
           FROM   Position p
           WHERE  p.reportstopositionid = u.positionid
       )
于 2013-02-25T14:15:46.080 に答える
1

これはどう?

SELECT  DISTINCT a.*
FROM    user a
        INNER JOIN position b
            ON a.userID = b.reportstopositionID

このクエリによって返されるレコードは、列のテーブルで一致する ID を持つものuseridですpositionreportstopositionID

于 2013-02-25T14:03:20.077 に答える
1

where私はあなたが節でこれをしたいと思う:

select u.*
from user u
where u.positionId in (select reportstopositionid from position p)

これにより、重複することなく、一致するユーザーのリストが取得されます。

于 2013-02-25T14:06:38.580 に答える