2张表,user_info表 和 rule_info表
user_info表有主键id和level字段 字段值为1-5
rule_info表有主键id和level1,level2,level3,level4,level5 字段 , 字段值都是对应的user_info中的id值数据大致为:
user_info
id level
51 1
52 2
53 3
54 3
--------------------------------------
rule_info
id userId level1 level2 level3 level4 level5
11 51 51
12 52 51 52
13 53 51 52 53
14 54 51 52 54
现在想要写个sql语句 通过一个user_info的id值 也就是一个用户 找到他的user_info中level,再去rule_info表中查到所有刚才查出来的level值的对应列的所有id值
比如:查id为52下面的所有userId,先在user_info中找到他的level是2,再去rule_info表中找level2列,所有值为52的userId列,出来的应该是52,53,54
user_info表有主键id和level字段 字段值为1-5
rule_info表有主键id和level1,level2,level3,level4,level5 字段 , 字段值都是对应的user_info中的id值数据大致为:
user_info
id level
51 1
52 2
53 3
54 3
--------------------------------------
rule_info
id userId level1 level2 level3 level4 level5
11 51 51
12 52 51 52
13 53 51 52 53
14 54 51 52 54
现在想要写个sql语句 通过一个user_info的id值 也就是一个用户 找到他的user_info中level,再去rule_info表中查到所有刚才查出来的level值的对应列的所有id值
比如:查id为52下面的所有userId,先在user_info中找到他的level是2,再去rule_info表中找level2列,所有值为52的userId列,出来的应该是52,53,54
解决方案 »
- 安装SQL
- 求数据库文档生成工具,哪位高手用着顺手的,赠送一个...
- 一个提取时间的问题?我的数据库的某列用来存储日期时间,格式为2008-3-6 17:57:51,如何读取年月日与现在的年月日比较大小?
- 事务回滚问题
- 租用的sql server空间,能够防止服务器管理员修改你表的内容吗?
- 请问记录提交一次却在SQL里重复多次写入是怎么回事情?谢谢!
- exists 和 join 的疑问
- 跨服务器数据同步?
- 最初级问题:在Adaptive Server Anywhere 6.0中怎样打开bookbiz数据库?Up有分
- "无法创建大小为 8137 的行,该值大于允许的最大值 8060。
- sql 查询问题
- mysql limit使用变量问题
SELECT T1.id,T2.userId
FROM user_info T1
JOIN rule_info T2 ON T1.id=(CASE T1.level
WHEN 1 THEN T2.level1
WHEN 2 THEN T2.level2
WHEN 3 THEN T2.level3
WHEN 4 THEN T2.level4
WHEN 5 THEN T2.level5
END)
)
SELECT id
,STUFF((SELECT ','+CAST(userId AS VARCHAR(10))
FROM CTE T2
WHERE T1.id=T2.id
FOR XML PATH(''))
,1,1,'')[userIds]
FROM user_info T1
,STUFF((SELECT ','+CAST(T2.userId AS VARCHAR(10))
FROM rule_info T2
WHERE T1.id=
(CASE T1.level
WHEN 1 THEN T2.level1
WHEN 2 THEN T2.level2
WHEN 3 THEN T2.level3
WHEN 4 THEN T2.level4
WHEN 5 THEN T2.level5
END)
FOR XML PATH(''))
,1,1,'')[userIds]
FROM user_info T1