Antje Hofmann: mySQL: LEFT JOIN

Beitrag lesen

Hallo Andre

Schade! So einiges vermisse ich in letzter Zeit an mySQL. Aber einem geschenkten Pferd, schaut man nichts ins Maul, oder selbst eine Datenbank programmieren oder sich für eine andere(viel Geld) entscheiden. :-)

:-) naja, ich arbeite zur Zeit viel mit Oracle, da vermisse ich auch einiges gegenüber mysql. Es hebt sich eben irgendwo auf.

Problem ist, mehrere Statements arbeitet mySQL IMHO nach einander ab, also wie nach einander abgesetzt Statments.

dachte ich mir

select tab1.id,Name,info from tab1 left join tab2 on tab1_id=tab1.id order by id

Jaein! Ich wollte als erstes den Namen schreiben, dann alle Fotos(tab2.info) dann den nächsten Namen usw.. Mit NULL hätte ich das schön abfragen können.

Da ich eh sehr gern diese Bereiche trenne, würde ich das über assoziative Arrays lösen.

Also unmittelbar nach dem Datenbankzugriff ein Array aufbauen. Etwa so:
(Ich spare mir jetzt den DB-Syntax. Wenn du z.B. die MySQL-Klasse der PHP-Lib verwendest, ist das eh kein Problem.)

$foto=array();
if (!isset($foto[$name])) $foto[$name]=array();
$foto[$name][]=$info;

while (list($key,$value)=each($foto))
{
echo $key; //der Name

for ($i=0;$i<count($value);$i++)
 {

echo $value[$i]; //die Informationen
 }

}

Diese Form nehme ich so ziemlich häufig. Vielleicht nutzt sie dir auch was.

Mit zwei SELECTs kann ich auch leben, zuerst
die Namen dann die Fotos.

In kleinen Projekten ist das kein Problem. Bei größeren Projekten oder einer größeren Serverlast kann jeder zusätzliche Select sehr viel Ballast sein.

Viele Grüße

Antje