我有2个表tbl_UserRegistration
和tbl_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查询?
感谢..
注意 - Player1
和Player2
和UserName
相等。
答案 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