2009-10-22 77 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