不太清楚如何寫這個查詢,我想有人會這麼好心幫助我。相關查詢2012
我有兩個表(列名稱已更改爲安全):
消息表
信息id carbon_copy_id senderid recipientid
carbon_copy表
carbon_copy_id member_id
本質上,我正在寫一個允許抄送副本的電子郵件系統。
- 當成員向一個收件人發送郵件時,它將一條記錄寫入郵件表,並將碳_copy_id留空。
當成員發送包含多個收件人的電子郵件時,例如對於2個收件人, 我將兩個記錄插入到具有相同碳_copy_id和每個收件人的member_id的碳拷貝表中。然後我插入兩條消息記錄,每個收件人放入消息表中,並將共享的carbon_copy_id插入到碳副本表中。
從carbon_copy立方厘米 選擇 mt.messageid, mt.carbon_copy_id, oa.member_list 從 message_table公噸 外應用(選擇的東西((選擇 '' +鑄造(cc.member_id爲varchar) 其中cc.carbon_copy_id = mt.carbon_copy_id order by cc.member_id for xml path(''),TYPE).value('。','varchar(max)'),1,2,''))oa( member_list) 其中 的MessageID = id_of_message 爲了通過 的MessageID降序
我會需要這是成員列表中的碳副本不爲空的記錄,一個記錄沒有它,它是空的。
然而,由於上述的範例,這將產生兩個記錄插入一個列表。我所希望做的是有結果集中的兩個記錄合併成一個,並返回一個逗號分隔的carbon_copied會員ID,其中carbon_copy_id在消息記錄不是空的列表。
我們的想法是,返回的消息的列表,並且當該消息是複製的碳不顯示重複的消息。類似於GMAIL的做法。
任何幫助將不勝感激。