当前位置: 代码迷 >> Sql Server >> 关于联接查询的一些逻辑有关问题请问
  详细解决方案

关于联接查询的一些逻辑有关问题请问

热度:56   发布时间:2016-04-24 09:02:47.0
关于联接查询的一些逻辑问题请教。
环境介绍:
自己新建了两张表,一张记录了玩家账户,另外一张记录了玩家账户,玩家昵称,玩家等级,玩家的在线时长。
SELECT * FROM user_info A LEFT JOIN user_lvl B
ON A.account = B.account


麻烦大神告知一下,如何获取等级最高的那个角色信息,而不显示其余两个。
------解决思路----------------------
引用:
Quote: 引用:

显示每个账户最高的角色,级别相同都显示

SELECT * 
FROM user_info A LEFT (select C.* from JOIN user_lvl c join (select account,max(lvl) lvl from user_lvl group by account  ) D on   C.account = D.account and C.lvl=D.lvl ) B ON A.account = B.account

呃,感觉好复杂,我看都看不懂这句~~

就是 C和D join 后group by 得到B
A和B 再join 
不好所以 FROM user_info A LEFT 后少了一个 join

SELECT * 
FROM user_info A LEFT join (select C.* from JOIN user_lvl c join (select account,max(lvl) lvl from user_lvl group by account  ) D on   C.account = D.account and C.lvl=D.lvl ) B ON A.account = B.account



------解决思路----------------------
 SELECT * FROM user_info A LEFT join (select C.* from  user_lvl c join 
( select account,max(lvl) lvl from user_lvl group by account ) D on C.account = D.account and C.lvl=D.lvl) 
B ON A.account = B.account
  相关解决方案