質問編集履歴

2

追記依頼対応

2017/10/16 01:59

投稿

orange377
orange377

スコア17

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- ###追記
45
+ ###追記 No1
46
46
 
47
47
  >SQL文少し書き間違ってますね(メインのテーブルB⇒テーブルA)
48
48
 
@@ -75,3 +75,23 @@
75
75
  JOINの条件としてテーブルBのUKを使い、最終条件で特定のユーザーIDのランキングを取得する想定です。
76
76
 
77
77
  よろしくお願い致します。
78
+
79
+
80
+
81
+ ###追記No2
82
+
83
+ >丸投げの割に提示する情報が少ないですね。追記されたサンプルではどういったデータ群からどういった結果を導きたいのか類推できません。
84
+
85
+ 失礼しました。まだまだSQLは勉強不足で、どういう情報が必要なのかわかっていないのです。。もう少し情報を追記してみます。
86
+
87
+ テーブルA:ユーザー毎のスコアを管理
88
+
89
+ テーブルB:ゲームの種別マスタ(じゃんけん、クイズ、など)
90
+
91
+ じゃんけんやクイズに関するスコアがテーブルAで管理されており、ランキングを取得する際は
92
+
93
+ ・ユーザーID
94
+
95
+ ・ゲーム種別
96
+
97
+ を指定することで、そのゲーム種別のスコアからランキングを取得したく思っております。

1

情報追加依頼対応

2017/10/16 01:59

投稿

orange377
orange377

スコア17

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  WHERE スコア > NO2.スコア) AS rank
26
26
 
27
- FROM テーブルB AS NO2
27
+ FROM テーブルA AS NO2
28
28
 
29
29
  INNER JOIN テーブルB ON テーブルA.種別 = テーブルB.ID AND 条件
30
30
 
@@ -39,3 +39,39 @@
39
39
  「FROM NO1」や「FROM NO2」は相関クエリのためかうまくいきませんでした。
40
40
 
41
41
  一時テーブルにJOIN後のテーブルを格納する方法も試してみましたが、処理速度が遅くダメでした。
42
+
43
+
44
+
45
+ ###追記
46
+
47
+ >SQL文少し書き間違ってますね(メインのテーブルB⇒テーブルA)
48
+
49
+ 仰る通りです。書き写しにミスがありましたので、修正しました。
50
+
51
+
52
+
53
+ またテーブルのサンプルを連携します。
54
+
55
+ ```
56
+
57
+ テーブルA
58
+
59
+ ID ユーザーID 種別ID スコア
60
+
61
+ PK   UK    UK  idx
62
+
63
+
64
+
65
+ テーブルB
66
+
67
+ ID 種類ID 外部連携用ID
68
+
69
+ PK  UK    UK 
70
+
71
+ ```
72
+
73
+ 情報は絞っていますがおおよそ上記のような感じで、UKは複合UKです。
74
+
75
+ JOINの条件としてテーブルBのUKを使い、最終条件で特定のユーザーIDのランキングを取得する想定です。
76
+
77
+ よろしくお願い致します。