2009-10-22 79 views
0

我有三个表:现在实体关联问题

User: UserId (pk) 
     FirstName 
     Lastname 

Messages: MessageId (pk) 
      Heading 
      Body 

User_Messages: UserId 
       MessageId 

,实体设计师只创建与关联bewteen表两张表。 我想选择一个项目,其中UserId = value1和MessageId = value2, ,但似乎无法正确使用它。实体查询会是什么样子?

回答

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 
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