0

私は3つのテーブルを持っています:

User:  UserId (pk)
       FirstName
       Lastname

Messages: MessageId (pk)
          Heading
          Body

User_Messages: UserId 
               MessageId

現在、エンティティ デザイナーは、テーブル間の関連付けを持つ 2 つのテーブルのみを作成します。UserId = value1 および MessageId = value2 の項目を選択しようとしていますが、正しく取得できないようです。エンティティ クエリはどのようになりますか?

4

2 に答える 2

0

互いに関連付けられているユーザー/メッセージのみを選択するには、次を使用できます。

SELECT u.UserId, u.FirstName, u.LastName, m.MessageId, m.Heading, m.Body
FROM User_Messages h
   INNER JOIN User u ON h.UserId = u.UserId
   INNER JOIN Messages m ON h.MessageId = m.MessageId

すべてのユーザーを選択する (およびメッセージがあれば追加する) には、次を使用します。

SELECT u.UserId, u.FirstName, u.LastName, m.MessageId, m.Heading, m.Body
FROM User u 
   LEFT JOIN User_Messages u ON h.UserId = u.UserId
   LEFT JOIN Messages m ON h.MessageId = m.MessageId

最後に、メッセージを選択し、それぞれのユーザー情報を追加するには、次を使用します。

SELECT u.UserId, u.FirstName, u.LastName, m.MessageId, m.Heading, m.Body
FROM Messages m 
   LEFT JOIN User_Messages h ON h.MessageId = m.MessageId
   LEFT JOIN User u ON h.UserId = u.UserId
于 2009-10-22T17:01:19.330 に答える
0
Select a.firstname, a.lastname, b.heading, b.body
from user a, Messages b, User_Messages c
where a.UserId = c.UserId and b.MessageId = c.MessageId
and c.UserId = value1 and c.MessageId = value2
于 2009-10-22T17:00:05.027 に答える