sql server内连接。创建视图或存储过程

时间:2012-02-16 22:10:57

标签: sql-server linq-to-sql

我有两个表用户和消息:enter image description here

如何完全选择两个用户之间的对话?

例如,如果用户#1向用户#2发送消息:“你好吗”,然后#2回答“好,你呢?”怎么那么选择这样的东西?

enter image description here

谢谢,对不起,我的英语很差

1 个答案:

答案 0 :(得分:2)

(未经测试......;)

CREATE PROCEDURE GetConversation 
( 
  @user1 BIGINT 
  ,@user2 BIGINT
) 
AS 
Select [FromUserID], Date, Text from Messages WHERE [FromUserID] in (@user1,@user2) AND [ToUserID] in (@user1,@user2) ORDER BY Date DESC

注意,只有在您想要映射用户的特定数据时才需要“用户”表。例如:显示用户名而不是ID。您将通过简单的JOIN来实现这一目标。

@Edit:在第一个问题标题中没有注意到“存储过程”。