I have 2 different tables in my database by the name of: rank, settings.
Here is how each table looks like with a few records in them:
Table #rank:
id  points userid
--  ----- ------
 1    500      1
 2    300      2    
 3    900      3
 4   1500      4
 5    100      5
 6    700      6
 7    230      7
 8    350      8
 9    850      9
10    150     10
Table #settings:
userid    active 
------    ------
     1         0
     2         1
     3         1
     4         1
     5         1
     6         0
     7         1
     8         1
     9         0
    10         1
I want to get the rank of a specific user by user_id from the rank table ordering by their points. Also I would Only want to include the users in the ranking results, if they have active = 1 set in the settings table.
I have a simple ranking query, but it is not really effective, because it does include everyone even if the user is not active:
SELECT * FROM 
(SELECT @sort:=@sort+1 AS sort, points, userid
 FROM rank,
(SELECT @sort := 0) s 
 ORDER BY points DESC) t 
WHERE userid= 8
Any idea, how could I achieve my goals here?
 
     
     
    