2009-10-22 11 views
0

J'ai trois tables:problème d'association Entité

User: UserId (pk) 
     FirstName 
     Lastname 

Messages: MessageId (pk) 
      Heading 
      Body 

User_Messages: UserId 
       MessageId 

Maintenant, le concepteur de l'entité ne crée que deux tables avec une association bewteen les tables. J'essaye de sélectionner un article où UserId = value1 et MessageId = value2, mais ne peux pas sembler le faire correctement. À quoi ressemblerait la requête theentity?

Répondre

0

Pour sélectionner uniquement les utilisateurs/messages, qui sont associés les uns aux autres, vous pouvez utiliser

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 

Pour sélectionner tous les utilisateurs (et en ajoutant leurs messages, le cas échéant) utiliser:

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 

Enfin, pour sélectionner les messages et ajouter des informations utilisateur pour chacun d'eux, utilisez:

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