2016-05-17 12 views
1

私はalldocsからのすべてのドキュメントを試しています(siteid = somethingとcheckoutはnullではありません)。 Alldocsはフィールドコールcheckoutuseridを持ち、userinfoテーブルからその名前を取得する必要があります。 UserInfoは同じIDを繰り返している可能性があります。そのため、私はsite-idを追加しています。次のクエリでエラーが発生します。 「サブクエリは私がクエリに第三のテーブルを追加したとして、次の作業のコードを追加しています。次は完全に働いている)SQLクエリ結合テーブル - サブクエリが1より大きい値を返しました

SELECT AllDocs.LeafName 
    , AllDocs.CheckoutDate 
    , UserInfo.tp_Title AS [User Name] 
    , UserInfo.tp_Login AS [User ID] 
    , UserInfo.tp_Email 
FROM AllDocs 
INNER JOIN UserInfo ON AllDocs.CheckoutUserId = (
     SELECT UserInfo.tp_ID 
     FROM UserInfo 
     WHERE UserInfo.tp_SiteID = 'E2FF98A7-B719-428D-8C30-856F08989691' 
    ) 
WHERE (AllDocs.SiteId = 'E2FF98A7-B719-428D-8C30-856F08989691') 
    AND (AllDocs.CheckoutUserId IS NOT NULL) 
ORDER BY AllDocs.LeafName 

を超える値を返しません。

use WSS_Content_MMRHome1 
SELECT  distinct AllDocs.LeafName AS [File Name], AllDocs.dirName AS [Path], AllDocs.CheckoutDate, 
      UserInfo.tp_Title AS [User Name], UserInfo.tp_Login AS [User ID], 
      UserInfo.tp_Email AS [User Email], AllLists.tp_Title AS [List Name], ('http://inside.nv.com/'+AllDocs.DirName+'/'+AllDocs.LeafName) AS URL 
FROM  AllDocs 
      INNER JOIN UserInfo ON AllDocs.CheckoutUserId = UserInfo.tp_ID AND UserInfo.tp_SiteID = AllDocs.SiteId 
      INNER JOIN AllLists ON AllDocs.ListId = AllLists.tp_ID 
WHERE  AllDocs.SiteId = 'D36CCEA0-5351-4AEC-8B83-ACA2439CF38B' 
       AND AllDocs.CheckoutUserId IS NOT NULL 
ORDER BY AllDocs.LeafName 
+0

を、複数の値ことになっている場合は、使用 'in'の代わりに、' = ' - または一つの値だけを取得するために、あなたのSQLを修正。 –

答えて

3

にサブクエリのための必要性を全く、ちょうどjoinに追加の基準を移動(またはwhere句に含める):

SELECT  distinct AllDocs.LeafName, AllDocs.CheckoutDate, 
      UserInfo.tp_Title AS [User Name], UserInfo.tp_Login AS [User ID], 
      UserInfo.tp_Email 
FROM  AllDocs INNER JOIN 
      UserInfo ON AllDocs.CheckoutUserId = UserInfo.tp_ID 
       AND UserInfo.tp_SiteID = 'E2FF98A7-B719-428D-8C30-856F08989691' 
WHERE  AllDocs.SiteId = 'E2FF98A7-B719-428D-8C30-856F08989691' 
       AND AllDocs.CheckoutUserId IS NOT NULL 
ORDER BY AllDocs.LeafName 

実際には同じサイトIDのようですか?もしそうなら、ちょうど同様にその場に参加する:

... 
FROM  AllDocs INNER JOIN 
      UserInfo ON AllDocs.CheckoutUserId = UserInfo.tp_ID 
       AND UserInfo.tp_SiteID = AllDocs.SiteId 
WHERE  AllDocs.SiteId = 'E2FF98A7-B719-428D-8C30-856F08989691' 
       AND AllDocs.CheckoutUserId IS NOT NULL 
ORDER BY AllDocs.LeafName 
+1

おそらく本当ですが、これは*重複した行を生成する可能性があります。 –

+0

@GordonLinoff - true、dependsは、あなたが使用することができます。この場合、Distinctが役立つかもしれません... – sgeddes

+0

これは私にalldocsから重複した行を与えますが、私がそれを解決すると問題は解決します –

関連する問題