0

私は3つのテーブルを持っています:

  • MessageMsgIDMsgTextMsgDate列を持つテーブル。MsgIdPKです。
  • MessageSenderMsgIdSenderId、を持つテーブルSenderNameMsgIdFKです。
  • MessageToMsgIdToId、を持つテーブルToNameMsgIdFKです。

すべての Message には1 つの Senderがあります。ただし、多数の Recipientsを持つことができます。つまり、テーブル内のすべてのレコードに対して、Messageテーブルには 1 つのレコードがあり、MessageSenderテーブルには複数のレコードがありMessageToます。

1 つのクエリまたは一度に、すべてのメッセージのすべての詳細を取得したいと考えています。たとえば、特定のメッセージの場合、送信者は誰で、全員が受信者です。

これどうやってするの?

MSSQL Server 2005 と Sybase 15 を使用しています。

注: ここでは、テーブルの関連する詳細のみを示しています。また、テーブル スキーマは長い間本番環境にあるため、変更できません。

4

1 に答える 1

0
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
于 2013-03-07T11:45:54.430 に答える