1

我有 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

现在我想用他们的照片链接来获取连胜纪录最高的球员。

编辑:

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

我怎样才能做到这一点?

什么可以是sql查询?

谢谢..

注意Player1- and Player2andUserName是相等的..

4

2 回答 2

1

假设用户名与 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 
于 2012-05-16T07:34:58.473 回答
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
于 2012-05-17T05:50:39.907 回答