2017-12-17 6 views
2
GAME LEVEL TABLE     PLAYER TABLE 
------------------------   ------------------------ 
ID MAX-NOTE STATUT    ID PLAYER  NOTE 
------------------------   ------------------------ 
1 1000  LEVEL-I    1 PLAYER1  500 
2 2000  LEVEL-II   2 PLAYER2  1200 
3 3000  LEVEL-A    3 PLAYER3  100 
4 4000  LEVEL-B    4 PLAYER4  3500  

ことが可能であるとの間でのMySQLからデータを取得PHPは、各プレイヤーのために、エコー、などのSTATUTを何かをする2つの数字

例:プレイヤーが「LEVEL-I」

(0 1000)エコー間のノートを持っている場合

が、プレイヤーがエコーLEVEL-II(1000〜2000)の間にノート......

+0

私はそれを行う方法を見ることができますが、ID 2分= 1001等 – nogad

答えて

1

を持っている場合は、データベースのクエリを変更する場合は、その場で、この情報を生成し、それが余分な列として返すことができます他のテーブルを完全に削除します。

SELECT ID, PLAYER, NOTE, 
    (CASE 
     WHEN NOTE < 1000 THEN 'LEVEL-I' 
     WHEN NOTE BETWEEN 1000 AND 2000 THEN 'LEVEL-II' 
     WHEN NOTE > 2000 THEN 'LEVEL-III' 
    END) LEVEL 
FROM table 

それとも、このようなサブクエリを使用することができます:あなたは分を追加してゲームレベルのテーブルを変更する場合は0になり、ID 1分間のよう

SELECT ID, PLAYER, NOTE, (SELECT STATUT FROM game_table WHERE NOTE < MAX-NOTE ORDER BY MAX-NOTE DESC LIMIT 1) as LEVEL 
FROM table 
+1

私は彼が他のテーブルに参加したいと思うので、あなたはハードコードの下位の値を無効にします – nogad

+0

私はそれを自動的に行うには、自動的にノートからレベルをタックします – Bynd

+0

私の2番目の提案は、レベルテーブルから自動的に – miknik

関連する問題