一个sql查询问题

hahanan1987 2010-07-20 09:26:33
表结构是这样的 A表(ID INT,RoleID CHAR(1),UserID INT,.....)
RoleID表示角色有两个假设'1','2'
根据RoleID的不同要用UserID跟不同的用户表关联从而获得用户名(这里主要是和不同用户表关联)
有什么方法可以一个查询语句中查询出来?或者有什么其他高效点的查询方法

(我现在是建个临时表然后分两次查询关联两张表 插入临时表的 数据库版本:SQL2000)
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
linjunf 2010-07-20
  • 打赏
  • 举报
回复
10分~~~~~~~~~~~~~~~~~~
hahanan1987 2010-07-20
  • 打赏
  • 举报
回复
4楼是满足了 饿 我咋没想到
这是效率最高的方法了么?
请叫我潇洒哥 2010-07-20
  • 打赏
  • 举报
回复
Layto 2010-07-20
  • 打赏
  • 举报
回复
楼上,我看行
rmljoe 2010-07-20
  • 打赏
  • 举报
回复
select
a.*,
case a.RoleID when '1' then b.用户名 when '2' then c.用户名 else '' end as 用户名
from A表 a
left join 用户表1 b
on a.userid = b.userid
left join 用户表2 c
on a.userid = c.userid
  • 打赏
  • 举报
回复
似乎看起来用CASE可以实现你的需求.

UserID=CASE WHEN RoleID='1' THEN Table1.UserID
WHEN RoleID='2' THEN Table2.UserID ELSE '' END
playwarcraft 2010-07-20
  • 打赏
  • 举报
回复
华夏小卒 2010-07-20
  • 打赏
  • 举报
回复
表结构,记录
hahanan1987 2010-07-20
  • 打赏
  • 举报
回复
坐等一天 无人问津啊

34,591

社区成员

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

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