Чтение нескольких записей, связанных с каждой записью в наборе результатов одновременно

У меня есть 3 таблицы:

  • Message стол с MsgID, MsgText, MsgDate колонны. MsgId это ПК.
  • MessageSender стол с MsgId, SenderId, SenderName, MsgId это ФК.
  • MessageTo стол с MsgId, ToId, ToName, MsgId это ФК.

Каждое сообщение будет иметь одного отправителя. Но это может иметь много получателей. т.е. для каждой записи в Message таблица, будет одна запись в MessageSender таблица и более одной записи в MessageTo Таблица.

Я хочу получить ВСЕ детали всех Сообщений в одном запросе или за один раз. например, для конкретного Сообщения, кто является Отправителем и кто ВСЕ являются получателями.

Как я могу это сделать?

Я использую MSSQL Server 2005 и Sybase 15.

Примечание: я дал только соответствующие детали таблиц здесь. И я не могу изменить схему таблицы, так как она уже давно в производстве.

1 ответ

Решение
select distinct M.MsgID, M.MsgText, MS.SenderID, MS.SenderName, 
MT.ToName, MT.ToId 
from Message M, MessageSender MS, MessageTo MT
where M.MessageID = MS.MessageID and 
M.MessageID = MT.MessageID 
and MsgDate like '%20130307%' -- To get the messages sent on 07-Mar-2013
Другие вопросы по тегам