一个表是 用户  usertable
id int
name char
vote int作品表mytable
 id int
 myname char
 vote int
 clickcount int
因为如果是原创的分纪录在用户表 转载的纪录在mytable中
现在想对用户进行排序是以用户的分数排的 用户可以有原创和转载 如果原创的分高就用原创的如果转载的分高就用转载的对其进行排序

解决方案 »

  1.   

    declare @userTable table(id int , [name] varchar(10) , myvotes  int)
    insert into @userTable values(1 , 'user1' , 15)
    insert into @userTable values(2 , 'user2' , 90)
    insert into @userTable values(3 , 'user3' , 80)
     
    declare @myTable table(id int , myname varchar(10) , vote int , clickcount int)
    insert into @myTable values(1 , 'user1' , 20 , 2)
    insert into @myTable values(2 , 'user1' , 10 , 1)
    insert into @myTable values(3 , 'user1' , 70 , 1)
    insert into @myTable values(4 , 'user2' , 70 , 1)
    insert into @myTable values(5 , 'user2' , 60 , 1)
    insert into @myTable values(6 , 'user2' , 96 , 1)
    ---------------------------------------------------
    select * from @userTable
    --  用户表
    id       [name]  myvotes
    1 user1 15
    2 user2 90
    3 user3 80
    ----------------------------------------------------
    select * from @myTable
    --  文章表
    id      myname  vote   clickcount 
    1 user1 20 2
    2 user1 10 1
    3 user1 70 1
    4 user2 70 1
    5 user2 60 1
    6 user2 96 1
    ----------------------------------------------------
    select a.[name] , (case when a.myvotes<b.vote then b.vote else a.myvotes end) as vote
    from @userTable a
    left outer join (select myname , max(vote) as vote from @myTable group by myname) b
         on a.[name] = b.myname
    --你需要的结果
    name     vote
    user1 70
    user2 96
    user3 80---我理解 你是这个意思
    --如果我理解的不对 说
    --昨天怎么也访问不了
      

  2.   

    我的mysql数据库是4的版本,你的这条sql 执行没有反应,谢谢了 
    还有可以在mysql4 下可以执行的马
      

  3.   

    select a.name , (case when a.myvotes<b.vote then b.vote else a.myvotes end) as vote
    from @userTable a
    left outer join (select myname , max(vote) as vote from @myTable group by myname) b
         on a.name = b.myname标准的T-SQL语句
    这个拿到mySql里面去执行应该是没有什么问题的
    你再试一试
      

  4.   

    select u.usrID, 
             (case when u.myvotes<m.myvotes 
         then m.myvotes else u.myvotes end) as vote 
      from userTable u left outer join myTable m on u.usrID = m.myID order by vote des
      

  5.   

    如果你的 用户 usertable  里面有重复的纪录
    那结果重复 在所难免那