Salve avrei da mostrare una tabella che sia un riepilogo di informazioni da due tabelle ed un rank, ma ho problemi in quest'ultimo

codice:
users
+----+---------------+
| id | idcorporation |
+----+---------------+

corporations
+---------------+------+---------+--------+
| idcorporation | name | acronym | points |
+---------------+------+---------+--------+
Avrei bisogno di un SELECT che mostri quanti membri ha ogni corporation ed il rank in base ai punti.
Intanto chiedo se secondo voi dovrei fare magari una tabella derivata tramite CREATE VIEW
Oppure usare altre soluzioni. Utilizzo engine MyISAM
Ho provato questo:

SET @rank=0;
SELECT @rank:=@rank+1 AS rank,
c.idcorporation,
COUNT(*) AS members,
c.acronym,
c.name,
c.points
FROM corporations c,users u
WHERE c.idcorporation=u.idcorporation
GROUP BY c.idcorporation
ORDER BY points DESC

Come si vede sotto non funziona in quanto crea il rank in base all'id della corporation e non in base ai points

codice:
rank idcorporation members acronym name points
1	1	2	NASA	National Aeronautics and Space Administration	52103
3	19	1	RKA	Russian Federal Space Agency			30223
6	22	2	CNSA	China National Space Administration		20214
5	21	1	ESA	European Space Agency				18041
4	20	1	ASI	Agenzia Spaziale Italiana			1234
2	2	3	JAXA	Japan Aerospace Exploration Agency		1231