0

私は次のシナリオを持っています:

テーブルと列(データベースタイプ:Microsoft Sql Server 2005):

表:エントリ

  • EntryID
  • ...その他の重要でない列

表:属性

  • AttributeID

表:EntryAttributes

  • EntryID [Releation To:Entries-> EntryID]
  • AttributeID [Releation To:Attributes-> AttributeID]

したがって、次のSQLステートメントのような複数の属性を含むエントリのみを選択するにはどうすればよいですか(ステートメントはANDリンクでは機能しません)。

SELECT *
FROM  [Entries] AS [t0]
INNER JOIN [EntryAttributes] AS [t1] ON [t0].[EntryID] = [t1].[EntryID]
WHERE ([t1].[AttributeID] = 1) AND ([t1].[AttributeID] = 1)

正しいSQLステートメントを作成するにはどうすればよいですか?確かに、どこかに解決策がありますが、その問題を検索するためにどのキーワードを使用すべきかわかりません。

「LinqtoEntites」を使用しているので、そのための単純なLinq式があるかもしれません。

私の投稿を読んでくれてありがとう!

よろしくお願いします!

4

1 に答える 1

0

このシナリオの解決策は、選択する [AttributeID] ごとに結合することです。

SELECT * 
FROM  [Entries] AS [t0] 
INNER JOIN [EntryAttributes] AS [t1] ON [t0].[EntryID] = [t1].[EntryID] 
INNER JOIN [EntryAttributes] AS [t2] ON [t0].[EntryID] = [t2].[EntryID] 
WHERE ([t1].[AttributeID] = 1) AND ([t2].[AttributeID] = 2)
于 2010-08-28T18:30:18.243 に答える