什么可以是SQL查询?

时间:2012-05-16 07:15:49

标签: asp.net sql database

我有2个表tbl_UserRegistrationtbl_Streaks,结构如下:

tbl_UserRegistration

               DATATYPE   LENGTH
UserName       Text         25  (PRIMARY KEY)
PhotoLink      Text        150  
DeviceToken    Integer      15
DeviceType     Integer       1

tbl_Streaks

            DATA TYPE     LENGTH
ID          Integer         10 (PRIMARY KEY)
Player1     Text            25
Player2     Tex             25
Streaks     Integer         10

现在我想通过他们的photolink来获取最高连胜的玩家。

已编辑:

 i.e. Player1, Player2, MAX(streak), Photolink

我该怎么做?

什么可以是SQL查询?

感谢..

注意 - Player1Player2UserName相等。

2 个答案:

答案 0 :(得分:1)

假设Username与Player1和Player2相同,那么您可以将tbl_Streaks加入到tbl_UserRegistration,并在SELECT子句中找到Streaks的MAX()以及Player1和Player2

以下是在T-SQL中,将拉出每个用户名的最大连线数:

SELECT
    r.UserName 
    , MAX(s.Streaks) mx     
FROM 
    tbl_UserRegistration r
    INNER JOIN tbl_Streaks s ON
        r.UserName = s.Player1
GROUP BY
    r.UserName 

答案 1 :(得分:1)

您可以通过两次加入PhotoLink为两位用户检索tbl_UserRegistration。要获得得分最高的玩家对,您可以按Streak的降序对行进行排序,并将其限制为仅一行,如下所示:

SELECT
  s.Player1,
  s.Player2,
  s.Streak,
  u1.PhotoLink AS PhotoLink1,
  u2.PhotoLink AS PhotoLink2
FROM tbl_Streaks s
  INNER JOIN tbl_UserRegistration u1 ON u1.UserName = s.Player1
  INNER JOIN tbl_UserRegistration u2 ON u2.UserName = s.Player2
ORDER BY s.Streak DESC
LIMIT 1