info
iID    iName   iValue
1       王       5
2       李       2
...
n       王       1user表
uID    uName    uSex
1       王       女
...
n       李       女 
想实现的效果是:列出所有user表中的用户,并将其中对应info表中的iValue值相加.效果如:
1    王    女    6
2    李    女    2
...
多谢!

解决方案 »

  1.   

    如果只用SQL语句来实现那太夸张了,但你可以和程序结合就行了
    select uname,usex,(select sum(ivalue) from info where iid="id") as ivalue from user where uid="id"
    这样一次只能取一个id的值,你再根据这个做个循环就OK了,
    或者
    先循环得出USER表的数据,然后再在显示这些数据的循环中select sum(ivalue) as ivalue from info where iid="id"读出ivalue就行了
      

  2.   

    select u.uName,u.uSex,sum(i.iValue) from user u,info i
    where u.uName=i.uName group by u.uName
      

  3.   

    select u.uID,u.uName,u.uSex,sum(i.iValue) from user u,info i where u.uID=i.iID group by u.uID,u.uName,u.uSex
      

  4.   

    要列出user表中的所有用户,试试这样:select u.uID,u.uName,u.uSex,sum(i.iValue) from user u left outer join info i on u.uID=i.iID group by u.uID,u.uName,u.uSex