select * from  user,exp where user.username=exp.username

解决方案 »

  1.   

    select * from exp as a inner join user as b on a.username=b.username
      

  2.   

    不是的,exp表里只有exp和level两个字段,是通过user.exp与exp.exp的对应关系来填充的。如一个用户经验值为150,而100经验是等级1,200经验是等级2,则可以显示用户等级1,下一等级为2.
      

  3.   

    不知道能不能把当前等级和下一等级都作为一个列填充到datareader或datatable中去啊?
      

  4.   

    你需要做的首先是取出该成员的经验数,如:150再取出所有的经验数,即select exp from exp用程序判断出该经验数在那两个规定经验数之间,再根据这两个数字去匹配等级数最后把这两个等级数做为一个新列添加到你的select * from user 得到的DataTable中用一条SQL是不可能实现的....
      

  5.   

    SELECT a.username,a.pwd, Max(b.exp) AS exp1 ,min(c.exp) as exp2
    FROM [user] AS a, exp AS b ,exp as c
    WHERE (a.experience)>[b].[exp] and a.experience<c.exp
    GROUP BY a.username,a.pwd
      

  6.   

    现在只给出了exp,level能搞定就自己搞吧,搞不定再给你
      

  7.   

    select a.username,a.pwd,b.level,b.level+1 as nextlevel from user a,exp b where a.experience/b.exp>=1 and a.experience/b.exp<2
      

  8.   

    基本上满足你的要求,虽然累赘了一点
    select a.* ,(select [level] from exp where exp in (select max(exp) from exp   where  exp <(select exprience from user where username='yourname'))) as 本等级,
    (select [level] from exp where exp in (select min(exp) from exp   where  exp >(select exprience from user username='yourname'))) as 下一等级 from user a where a.username='yourname'得到 用户名+密码+经验+本等级+下一等级
      

  9.   

    select a.username,a.pwd,a.experience,b.level,b.level+1 as nextlevel from user a,exp b where a.experience/b.exp>=1 and a.experience/b.exp<2你试一下吧,一定行的。
      

  10.   

    谢谢各位,我已经清楚了写法,但还有一点不是很明白,如果我这样写
    SELECT a.username,a.pwd, Max(b.exp) AS exp1 ,min(c.exp) as exp2
    FROM [user] AS a, exp AS b ,exp as c
    WHERE (a.experience)>[b].[exp] and a.experience<c.exp

    ...
    where [b].[exp]<a.exp and c.exp>a.exp
    有什么区别,是否可以说是从exp表中取出符合条件的名字与user表合成对吗?
      

  11.   

    usrsdh(无恨)你所写的其中的b.level+1是标准的SQL写法吗?是否是指下1条记录呢?
      

  12.   

    select * from (select * from [user]) A left join in (select * from exp) on A.experience=b.exp 其实这样写比较麻烦!简单的说就是select * from [user] as u,exp as e where u.experience=b.exp
      

  13.   

    数据比较特殊一点,并不是user.exp=exp.exp,而是要取到介于user.exp值上下两个exp表中的记录
      

  14.   

    用foow(外面下雨)的方法解决了,谢谢各位,虽然累赘但比较直观,结贴