1

私は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

今度は、フォトリンクでストリークが最も高いプレーヤーを取得したいと思います。

編集済み:

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

これどうやってするの?

SQLクエリとは何ですか?

ありがとう..

Player1-とPlayer2UserNameは等しいです。

4

2 に答える 2

1

2回PhotoLink参加することで、両方のユーザーに対して取得できます。tbl_UserRegistration最も得点の高いプレーヤーのペアを取得するには、次のように、行を降順に並べ替えて、Streak1 行だけに制限することができます。

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 に答える
1

Username が Player1 および Player2 と同じであると仮定すると、tbl_Streaks を tbl_UserRegistration に結合し、SELECT 句で、Player1 および Player2 とともに Streaks の MAX() を見つけることができます。

以下は T-SQL であり、UserName ごとの最大 Streaks を引き出します。

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 に答える