我有3张桌子:
Message
表格包含MsgID
,MsgText
,MsgDate
列。 MsgId
是PK。MessageSender
包含MsgId
,SenderId
,SenderName
的表格。 MsgId
是FK。MessageTo
包含MsgId
,ToId
,ToName
的表格。 MsgId
是FK。每条消息都有一个发件人。但它可以有许多收件人。即对于Message
表中的每条记录,MessageSender
表中都会有一条记录,MessageTo
表中会有多条记录。
我希望在一次查询中或一次 获取所有消息的所有详细信息。例如对于特定消息,谁是发件人以及所有人都是收件人。
我该怎么做?
我正在使用MSSQL Server 2005和Sybase 15。
注意:我这里只提供了表格的相关细节。我不能改变表模式,因为它已经在生产中存在了很长时间。
答案 0 :(得分: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