0

我有 3 张桌子:

  • Message具有MsgID, MsgText,MsgDate列的表。MsgId是PK。
  • MessageSender表有MsgId, SenderId, SenderName. MsgId是FK。
  • MessageTo表有MsgId, ToId, ToName. MsgId是FK。

每条消息都会有一个 Sender。但它可以有很多 Recipients。即对于表中的每条记录,Message表中将有一条记录,并且MessageSender表中将有多条记录MessageTo

我想在一个查询中或一次获取所有消息的所有详细信息。例如,对于特定消息,谁是发件人,谁都是收件人。

我怎样才能做到这一点?

我正在使用 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 回答