質問編集履歴
2
追記依頼対応
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -20,7 +20,7 @@ | |
| 20 20 | 
             
            「FROM NO1」や「FROM NO2」は相関クエリのためかうまくいきませんでした。
         | 
| 21 21 | 
             
            一時テーブルにJOIN後のテーブルを格納する方法も試してみましたが、処理速度が遅くダメでした。
         | 
| 22 22 |  | 
| 23 | 
            -
            ###追記
         | 
| 23 | 
            +
            ###追記 No1
         | 
| 24 24 | 
             
            >SQL文少し書き間違ってますね(メインのテーブルB⇒テーブルA)
         | 
| 25 25 | 
             
            仰る通りです。書き写しにミスがありましたので、修正しました。
         | 
| 26 26 |  | 
| @@ -36,4 +36,14 @@ | |
| 36 36 | 
             
            ```
         | 
| 37 37 | 
             
            情報は絞っていますがおおよそ上記のような感じで、UKは複合UKです。
         | 
| 38 38 | 
             
            JOINの条件としてテーブルBのUKを使い、最終条件で特定のユーザーIDのランキングを取得する想定です。
         | 
| 39 | 
            -
            よろしくお願い致します。
         | 
| 39 | 
            +
            よろしくお願い致します。
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            ###追記No2
         | 
| 42 | 
            +
            >丸投げの割に提示する情報が少ないですね。追記されたサンプルではどういったデータ群からどういった結果を導きたいのか類推できません。
         | 
| 43 | 
            +
            失礼しました。まだまだSQLは勉強不足で、どういう情報が必要なのかわかっていないのです。。もう少し情報を追記してみます。
         | 
| 44 | 
            +
            テーブルA:ユーザー毎のスコアを管理
         | 
| 45 | 
            +
            テーブルB:ゲームの種別マスタ(じゃんけん、クイズ、など)
         | 
| 46 | 
            +
            じゃんけんやクイズに関するスコアがテーブルAで管理されており、ランキングを取得する際は
         | 
| 47 | 
            +
            ・ユーザーID
         | 
| 48 | 
            +
            ・ゲーム種別
         | 
| 49 | 
            +
            を指定することで、そのゲーム種別のスコアからランキングを取得したく思っております。
         | 
1
情報追加依頼対応
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -11,11 +11,29 @@ | |
| 11 11 | 
             
            SELECT (
         | 
| 12 12 | 
             
            	SELECT count(*)+1 FROM テーブルA AS NO1 INNER JOIN テーブルB ON テーブルA.種別 = テーブルB.ID AND 条件
         | 
| 13 13 | 
             
                WHERE スコア > NO2.スコア) AS rank
         | 
| 14 | 
            -
            FROM テーブル | 
| 14 | 
            +
            FROM テーブルA AS NO2
         | 
| 15 15 | 
             
            INNER JOIN テーブルB ON テーブルA.種別 = テーブルB.ID AND 条件
         | 
| 16 16 | 
             
            WHERE 最終条件
         | 
| 17 17 | 
             
            ```
         | 
| 18 18 |  | 
| 19 19 | 
             
            ###試したこと
         | 
| 20 20 | 
             
            「FROM NO1」や「FROM NO2」は相関クエリのためかうまくいきませんでした。
         | 
| 21 | 
            -
            一時テーブルにJOIN後のテーブルを格納する方法も試してみましたが、処理速度が遅くダメでした。
         | 
| 21 | 
            +
            一時テーブルにJOIN後のテーブルを格納する方法も試してみましたが、処理速度が遅くダメでした。
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ###追記
         | 
| 24 | 
            +
            >SQL文少し書き間違ってますね(メインのテーブルB⇒テーブルA)
         | 
| 25 | 
            +
            仰る通りです。書き写しにミスがありましたので、修正しました。
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            またテーブルのサンプルを連携します。
         | 
| 28 | 
            +
            ```
         | 
| 29 | 
            +
            テーブルA
         | 
| 30 | 
            +
            ID ユーザーID 種別ID スコア
         | 
| 31 | 
            +
            PK   UK    UK  idx
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            テーブルB
         | 
| 34 | 
            +
            ID 種類ID 外部連携用ID
         | 
| 35 | 
            +
            PK  UK    UK 
         | 
| 36 | 
            +
            ```
         | 
| 37 | 
            +
            情報は絞っていますがおおよそ上記のような感じで、UKは複合UKです。
         | 
| 38 | 
            +
            JOINの条件としてテーブルBのUKを使い、最終条件で特定のユーザーIDのランキングを取得する想定です。
         | 
| 39 | 
            +
            よろしくお願い致します。
         | 
