Markus Bodmann: PHP/MySQL Abfrage beschleunigen

Beitrag lesen

Hallo,

ich kenne mich nicht so gut mit MySQL aus und eine Abfrage ide ich geschrieben habe nimmt sehr viel Zeit in Anspruch, ich schätze mal das es auch eine bessere möglichkeit gibt.

Also ich habe eine Tabelle (t1_cod4_v3_players_sd) in dieser gibt es die Spalten players_id und players_key. Jede id und jeder key sind einmalig.

In der zweiten Tabelle (t1_cod4_v3_nicks) sind zu den keys nicks gespeichert und die Anzahl wie oft welcher nick von welchem key benutz wurde (count).

Mein Ziel ist es alle keys auszugeben, mit dem Nick, der am häufigsten benutzt wurde und das ganze dann Alphabetisch nach den Nicks geordnet.

Hier ist meine Bisherige Lösung:

  
mysql_query("  
  CREATE TEMPORARY TABLE playerlist (  
   id bigint(10),  
   nick varchar(255)  
  );  
");  
  
$abfrage_player = mysql_query("  
  SELECT  
   t1_cod4_v3_players_sd.players_id,  
   t1_cod4_v3_players_sd.players_key  
  FROM  
   t1_cod4_v3_players_sd  
");  
while($row_player = mysql_fetch_array($abfrage_player)){  
  $abfrage_nick = mysql_query  
  ("  
   SELECT  
    t1_cod4_v3_nicks.nicks_nicks  
   FROM  
    t1_cod4_v3_nicks  
   WHERE  
    t1_cod4_v3_nicks.nicks_key =  '$row_player[1]'  
   ORDER BY  
    t1_cod4_v3_nicks.nicks_count DESC  
   LIMIT 1  
  ");  
  $row_nick = mysql_fetch_array($abfrage_nick);  
  
  mysql_query("  
    INSERT INTO  
     playerlist(id, nick)  
    VALUES  
    ('$row_player[0]','$row_nick[0]');  
    ");  
}  
  
$abfrage = mysql_query  
("  
  SELECT  
   *  
  FROM  
   playerlist  
  ORDER BY  
   nick ASC  
");  
while($row = mysql_fetch_array($abfrage)){  
  echo $row[0].' - '.$row[1].'<br />';  
}