Hallo,
folgende Fragestellung:
Ich habe eine Datenbank in der sich Artikel befinden. In einer Tabelle stehen die Artikelnummern, in anderen Tabellen weitere Infos, in einer letzten Tabelle dazugehörige Fotos (bis zu 6 Stück).
Bisher habe ich die Fotos mit einem SELECT in der WHILE-Schleife abgerufen (Skizzenhaft):
PHP Quellcode:
PHP-Code:
mysql_query("SELECT t1.artikelnummer... FROM t1 LEFT JOIN t2... LEFT JOIN t3... LEFT t4... WHERE...")
while {
mysql_query("SELECT foto FROM t10 WHERE fotoid = '".mysql_real_escape_string($a['artikelnummer'])."' ")
}
Gerne würde ich diese aber mit einem weiteren LEFT JOIN in die erste SELECT-Abfrage einbauen. Wie folgt:
PHP-Code:
mysql_query("SELECT t1.artikelnummer... FROM t1 LEFT JOIN t2... LEFT JOIN t3...
LEFT JOIN (SELECT foto FROM t10 LIMIT 0,1) AS foto...WHERE...")
Das funktioniert auch soweit. Allerdings dauert die zweite Variante mit gut 2 Sekunden etwa 10x so lang wie die erste Variante?!
Bringe ich in der ersten Variante einfach ein weitere LEFT JOIN auf die Fototabelle, funktioniert das auch - allerdings wird der Artikel dann so oft, wie die Anzahl der dazugehörigen Fotos vorhanden sind, ausgegeben. Ein GROUP by o.a. macht das ganze noch langsamer...
Soll ich dann jetzt doch lieber die erste Variante beibehalten? Schaffe ich so nicht zuuuu viele Datenbank-Connections (bei Beispielsweise 50 Einträge/Seite)? Wie kann ich die zweite Variante "schneller" bekommen?
DANKE