日期:2014-05-18  浏览次数:20501 次

关于一条SQL查询命令,大虾请帮忙!
有2个数据库

其中数据库1   中的   表USER   为用户注册表   包含字段   ABC(ABC为可重复的附加信息字段)
USER表如:

USERID   PASSWORD   ABC

数据库2   中   表   USERCHARS   为用户注册后所创建的角色

USERCHARS如:

USERID(注册的用户名)     jiaose1   jiaose2   jiaose3   (可创建3个角色)

数据库2   中   表   USERGAME  

USERGAME如:

jiaosename(创建的角色名字)   shuxing(角色属性)


现在的问题是   我如何使用SQL语句进行查询  
当USER表中一个注册用户的   附加信息为   ABC   内容为:112233
怎么才可以知道在数据库1表USER里有112233这个附加信息的注册用户所创建的角色并且他的shuxing(角色属性)是大于100的   角色一个有几个?

请教大虾怎么写?

小D   谢过  
100分拿去

------解决方案--------------------
try

Select
A.USERID,
(Select Count(*) From USERGAME Where jiaosename = B.jiaose1 And shuxing > 100) +
(Select Count(*) From USERGAME Where jiaosename = B.jiaose2 And shuxing > 100) +
(Select Count(*) From USERGAME Where jiaosename = B.jiaose3 And shuxing > 100)
As [大于100的角色]
From
[USER] A
Inner Join
USERCHARS B
On A.USERID = B.USERID
------解决方案--------------------
select USERCHARS.USERID,
count(a.jiaosename)+count(b.jiaosename)+count(c.jiaosename) as total
from USERCHARS
inner join [USER] on [USER].USERID = USERCHARS.USERID
left join USERGAME a on a.jiaosename=USERCHARS.jiaose1 and shuxing > 100
left join USERGAME b on b.jiaosename=USERCHARS.jiaose2 and shuxing > 100
left join USERGAME c on c.jiaosename=USERCHARS.jiaose3 and shuxing > 100
where [USER].ABC= '112233 '
group by USERCHARS.USERID