sql >> データベース >  >> RDS >> Mysql

ユーザーのMYSQLSELECTランク(xより大きくyより小さい)

    あなたはこのようにそれを行うことができます

    SELECT
      tu.id,
      tr.name,
      tu.points
    FROM table_ranks as tr
      LEFT JOIN (SELECT * FROM table_ranks LIMIT 1,69596585953484) as l
        ON l.points_needed = (SELECT MIN(points_needed) FROM table_ranks WHERE points_needed > tr.points_needed limit 1)
      LEFT OUTER JOIN table_users AS tu ON tu.points >= tr.points_needed AND tu.points < l.points_needed
    WHERE tu.id IS NOT NULL
    group by tu.id
    

    フィドル

    出力

    -------------------------
    | id  | points   | name |
    -------------------------
    | 1   |   lvl0   | 2    |
    | 2   |   lvl1   | 10   |
    | 3   |   lvl2   | 21   |
    | 4   |   lvl2   | 29   |
    -------------------------
    


    1. 左結合がすべての行を返さない

    2. MySQL-SELECT ... WHERE id IN(..)-正しい順序

    3. MySQLで暗号化キーを使用/保存するための最良の方法は何ですか

    4. OracleVirtualBoxのインストール手順