2009-10-22 1 views
0

У меня есть три таблицы:Entity проблема объединения

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 
Смежные вопросы