Salve avrei da mostrare una tabella che sia un riepilogo di informazioni da due tabelle ed un rank, ma ho problemi in quest'ultimo
Avrei bisogno di un SELECT che mostri quanti membri ha ogni corporation ed il rank in base ai punti.codice:users +----+---------------+ | id | idcorporation | +----+---------------+ corporations +---------------+------+---------+--------+ | idcorporation | name | acronym | points | +---------------+------+---------+--------+
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