在下面的SQL查询中,我有两个表、文档和文档用户地图。在documentname中,它有列documentId、documentname和userid;在documents表中,它有documentid和userid。我们创建的文档将位于documenttable (created,userid)中。我们共享给其他用户的文档将在documentusermap表(documentid .other userid).here中,我必须将我的userid传递给sp
我的目标是要获得其他用户为我共享的文档。
@i_userid int,
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
LEFT OUTER JOIN DocumentUserMapping DUM
ON DUM.DocumentID = Doc.DocumentID
AND DUM.UserID != Doc.UserID发布于 2014-06-18 08:05:59
尝试这个查询
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
JOIN DocumentUserMapping DUM
ON DUM.DocumentID = Doc.DocumentID
WHERE Doc.UserID != @i_userid
AND DUM.UserID = @i_userid发布于 2014-06-18 10:10:04
很难理解你的问题,但如果我真的理解了,这就是你想要的--一张你共享的文档列表,但不包括你拥有的文档。在这种情况下,这是没有理由的。
-- Return documents shared to me that I do not own
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
JOIN DocumentUserMapping DUM
ON DUM.DocumentID = Doc.DocumentID
AND DUM.UserID = @i_userid -- Shared to me
WHERE Doc.UserID != @i_userid -- Not owned by me或者,您希望拥有的文档和文档共享;最简单的方式如下所示:
-- Return documents shared to me AS WELL AS docs I own
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
WHERE Doc.UserID = @i_userid -- Docs I own
-- Or.. Docs shared
OR EXISTS (SELECT 1 FROM DocumentUserMapping WHERE DocumentID = Doc.DocumentID AND UserID = @i_userid)发布于 2014-06-18 08:03:23
尝尝这个
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
LEFT JOIN DocumentUserMapping DUM
ON Doc.DocumentID = DUM.DocumentID
where Doc.UserID=101;这里我以101作为您的用户id
https://stackoverflow.com/questions/24279903
复制相似问题