[英]Sql Query left outer join
In the SQL query below, I have 2 tables, documents and document user map. 在下面的SQL查询中,我有2个表,文档和文档用户映射。 In documents table it has columns documentId, documentname and userid;
在documents表中,它具有documentId,documentname和userid列; and in doumnent usermap table it has documentid and userid.
在主要的usermap表中,它具有documentid和userid。 The documents that we create will be in documenttable (created documentid, userid).
我们创建的文档将在documenttable中(创建的documentid,userid)。 The documents we share to other users will be in documentusermap table (documentid .other userid).here i have to pass my userid to sp
我们共享给其他用户的文档将位于documentusermap表中(documentid .other userid)。在这里,我必须将我的userid传递给sp
My aim is I want to get documents what other users shared for me. 我的目标是要获取其他用户为我共享的文档。
@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
Hard to understand your question but if I did understand it this is what you want - a list of documents that are shared to you, but excluding docs that you own. 很难理解您的问题,但如果我确实理解,这就是您想要的-与您共享的文档列表,但不包括您拥有的文档。 There's no reason this would be a LEFT join in this case.
在这种情况下,没有理由这将成为左联接。
-- 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
Alternatively you want both docs you own, AND docs shared to you; 或者,您希望拥有自己的两个文档,并且希望将文档共享给您; simplest way shown below:
最简单的方法如下所示:
-- 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)
Try this 尝试这个
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM Documents Doc
LEFT JOIN DocumentUserMapping DUM
ON Doc.DocumentID = DUM.DocumentID
where Doc.UserID=101;
here I've taken 101 as your user id 在这里,我已将101作为您的用户ID
I would start by looking for document that are shared to me in the DocumentUserMapping
to then get the document information 我将从在
DocumentUserMapping
查找共享给我的DocumentUserMapping
,然后获取文档信息
SELECT Doc.UserID,
Doc.DocumentID,
Doc.DocumentName
FROM DocumentUserMapping DUM
INNER JOIN Documents Doc ON DUM.DocumentID = Doc.DocumentID
WHERE DUM.UserID = %myID%
Try this query 试试这个查询
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.