Sql选择问题

par*_*rek 0 c# sql sql-server windows-phone-7

你好,我需要一些帮助这个查询.我试图使用他们的UserId选择属于两个用户的所有消息.我想返回一个变量来知道CurrentUserId是每个消息的Receiver还是Sender.


表结构:

表名:消息

列名:

  • SenderUserId(发送消息的用户的ID)
  • ReceiverUserId(邮件发送到的用户的ID)
  • 消息(保留消息)
  • SentDate(发送消息时)

预期产出示例:

消息--------------------------- SentDate --------------------- - - - - -从我


你好用户-------------------------- 23:45,16/2/2012 ------------- - - - - -真正 - -


立即查询:

SELECT Message, SentDate FROM Messages 
WHERE SenderUserId=@CurrentUser AND ReceiverUserId=@OtherUser 
OR SenderUserId=@CurrentUser AND ReceiverUserId=@OtherUser
Run Code Online (Sandbox Code Playgroud)

所以我基本上想做的是我想要返回这些用户一直发送给彼此的所有消息,如果@CurrentUser是每条消息的Receiver的发送者,我也想知道一个布尔值.如果消息是从@CurrentUser发送的,则为True;如果消息是由@OtherUser发送的,则为False.谢谢

a1e*_*x07 5

SELECT Message, SentDate ,
CASE 
  WHEN SenderUserId=@CurrentUser THEN 'True'
  ELSE 'False'
END as is_sent_by_current_user
FROM Messages  
WHERE (SenderUserId=@CurrentUser AND ReceiverUserId=@OtherUser ) 
OR (ReceiverUserId=@CurrentUser AND SenderUserId=@OtherUser) 
Run Code Online (Sandbox Code Playgroud)