Gamux Game Entwicklung  
     

Left Nav Mit Facebook verbinden Registrieren Lexikon Lexikon Interessengemeinschaften Suchen Heutige Beiträge Alle Foren als gelesen markieren Right Nav

Left Container Right Container
 
Alt 04.01.2009, 16:19   #1 (permalink)
Neuer Benutzer
 

Standard MySQL Abfrage optimieren

Hallo Forenuser,
ich habe wieder ein mal ein kleines Problem. Diesmal geht es in die Richtung Performance, welche sehr wichtig für ein Forum ist. Ich habe diese Abfrage hier mal beispielhaft neu geschrieben. Ich denke, dass die Antwort wohl im arbeiten mit JOINS liegen wird bin mir aber nicht sicher.
PHP-Code:
<?php
//MySQL Connect & Co
$sql1 mysql_query("SELECT * FROM friends WHERE buddy_to='1' ORDER BY date ASC");
while(
$row1 mysql_fetch_assoc($sql1))

$sql2 mysql_query("SELECT id, name FROM user WHERE name='".$row1['buddy_from']."'");
$row2 mysql_fetch_assoc($sql2);
echo 
$row2['name'];
?>
Leider wird hier bei jedem Freund ein neuer Query gestartet was ich gerne verhindern würde. Danke schonmal im vorraus für eure Mühe.
Zerber ist offline   Mit Zitat antworten An Facebook senden
Werbung
Alt 23.01.2009, 18:56   #2 (permalink)
Neuer Benutzer
 

da_loki eine Nachricht über ICQ schicken
Standard

Versuch mal folgendes SQL-Statement:
Code:
select user.id, user.name from friends, user where user.id = friends.buddy_from and friends.buddy_to='1'
Damit solltest du dann in einer While-Schleife alle Buddies direkt angezeigt bekommen.
da_loki ist offline   Mit Zitat antworten An Facebook senden
Alt 02.02.2009, 00:12   #3 (permalink)
Neuer Benutzer
 

Standard

Danke, ich hätte nicht gedacht, dass das so einfach ist. Konnte leider nicht antworten, da ich wegen Fieber im Krankenhaus liegen musste.

Aber wazu braucht man dann üerhasupt noch Joins? Und wo ist der Unterschied zwischen Left Join, Right Join und Inner Join?
Ich hoffe, dass mir das jemand beantworten kann.
Zerber ist offline   Mit Zitat antworten An Facebook senden
Alt 02.02.2009, 17:26   #4 (permalink)
Neuer Benutzer
 

da_loki eine Nachricht über ICQ schicken
Standard

Ich hoffe, dass es dir jetzt wieder besser geht

Das Statement was ich dir da geschrieben habe, ist ein "inner join", aber ohne dies wirklich zu benennen

Da es schwer ist das ganze zu beschreiben ohne eine ER-Diagramm zu haben, schau dir mal den Artikel bei Wikipedia an.
SQL: http://de.wikipedia.org/wiki/SQL#Spr..._und_Beispiele
JOIN: http://de.wikipedia.org/wiki/Relationale_Algebra#Join (mathematisch)

Wichtig ist immer bei einem JOIN, dass du dir darüber klar wirst, welche Tabelle "komplett" ausgelesen werden soll, und welche Daten du zusätzlich haben möchtest.
da_loki ist offline   Mit Zitat antworten An Facebook senden
Antwort

Stichworte
joins, mysql, performance

Themen-Optionen
Ansicht

Forumregeln
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:03 Uhr.


Style Copyright by Wrestling Forum
Content Relevant URLs by vBSEO 3.3.0