Sql server 2012 sql server 2012中的相关查询

Sql server 2012 sql server 2012中的相关查询,sql-server-2012,Sql Server 2012,我不太清楚如何写这个查询,我想会有人来帮助我 我有两个表,为了安全起见,列名已更改: 消息表 消息ID 复印件 森德里德 接受者 复写表 复印件 会员身份证 本质上,我写的是一个电子邮件系统,允许复写 当一个成员向一个收件人发送消息时,它会将一条记录写入消息表,并将carbon\u copy\u id保留为空。 当一个成员发送一封有多个收件人的电子邮件时,例如对于2个收件人, 我在复写表中插入两条记录,每个收件人都有相同的复写id和一个成员id。然后,我插入两条消息记录,每个收件人一条记录到消息

我不太清楚如何写这个查询,我想会有人来帮助我

我有两个表,为了安全起见,列名已更改:

消息表 消息ID 复印件 森德里德 接受者

复写表 复印件 会员身份证

本质上,我写的是一个电子邮件系统,允许复写

当一个成员向一个收件人发送消息时,它会将一条记录写入消息表,并将carbon\u copy\u id保留为空。 当一个成员发送一封有多个收件人的电子邮件时,例如对于2个收件人, 我在复写表中插入两条记录,每个收件人都有相同的复写id和一个成员id。然后,我插入两条消息记录,每个收件人一条记录到消息表中,共享的carbon\u copy\u id插入到carbon copy表中

挑选 mt.messageid, mt.carbon\u副本\u id, 会员名单 从…起 消息表mt 外部应用选择填充选择“,”+castcc.member_id作为varchar 抄送抄送 其中cc.carbon\u copy\u id=mt.carbon\u copy\u id 按抄送成员编号订购 对于xml路径,键入.value'.',varcharmax',1,2,oamember_列表 哪里 messageid=消息的id\u 订购人 消息ID描述

我需要这是一条有成员列表的记录,其中复写副本不为空,一条没有成员列表的记录,其中复写副本为空

然而,鉴于上述范例,这将生成插入的两条记录的列表。我要做的是让结果集将两个记录合并为一个,并返回一个逗号分隔的carbon_copy成员id列表,其中消息记录中的carbon_copy_id不为空

这样做的目的是返回一个消息列表,而不是在复制消息时显示重复消息。类似于GMAIL的做法


任何帮助都将不胜感激。

首先,从设计角度来看,将消息表外部键控到cc表似乎是落后的。可能是另一种情况,cc表引用要为其存储其他收件人的邮件的messageid

也就是说,无论哪种方式,您都应该在这里使用两个查询—一个用于消息,另一个用于抄送收件人列表。这是一个比使用两种表设计返回逗号分隔的列表更好的解决方案