请教一个查询语句怎么写

nyb 2012-09-13 09:50:03
假设表名是RecordTable 里面有字段 SourceUserID TargetUserID 表里有很多记录 现在想提取出符合条件的记录
现在通过调用存储过程传进@UserID获取记录 但是得从另一个表AccountsTable里得到名字 请教这条语句应该怎么写
现在我写了 只能得到SourceID的名字 不知道怎么得到TargetUserID的名字
SELECT a.*, b.NickName FROM RecordTable as a,AccountsTable as b
WHERE @dwUserID=SourceUserID and @dwUserID=b.UserID
这里是我写的,不知道取得TargetUserID的名字要怎么写 最好能一条语句完成,不另外声明变量 求教。。。
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
SQL code

--try
SELECT a.*, b.NickName,c.NickName FROM RecordTable as a,AccountsTable as b,AccountsTable c
WHERE a.SourceUserID=b.UserID and a.TargetUserID=c.UserID
and a.SourceUserID=@dwUser……
[/Quote]
+1
人生无悔 2012-09-13
  • 打赏
  • 举报
回复

--或者你这样写
SELECT a.*,
(select top 1 b.NickName from AccountsTable b where a.SourceUserID=b.UserID) NickName1,
(select top 1 c.NickName from AccountsTable c where a.TargetUserID=c.UserID) NickName2
FROM RecordTable a
WHERE a.SourceUserID=@dwUserID;
人生无悔 2012-09-13
  • 打赏
  • 举报
回复

--try
SELECT a.*, b.NickName,c.NickName FROM RecordTable as a,AccountsTable as b,AccountsTable c
WHERE a.SourceUserID=b.UserID and a.TargetUserID=c.UserID
and a.SourceUserID=@dwUserID;
發糞塗牆 2012-09-13
  • 打赏
  • 举报
回复
SELECT a.*, b.NickName FROM RecordTable as a,AccountsTable as b  
WHERE SourceUserID=@dwUserID and b.UserID=@dwUserID and a.主键=b.主键

其实你这里加个关联就可以了。另外,参数那里要放到=号的后面
發糞塗牆 2012-09-13
  • 打赏
  • 举报
回复
能先解释几个问题吗?1、AccountsTable表的结构和少量的数据,
2、RecordTable少量数据。这样解决你问题不难,但是我要看数据和大概的结构。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧