Zeige mir alle Datensätze wo VORNAME und NACHNAME gleich ist

hpvw hat gesagt.:
Ja

Ja

Das zweite Query ist eigentlich auch nur ein bisschen Spielkram. Normalerweise lässt man sich die Daten zurückgeben und sorgt in der Anwendungssprache (hier vermutlich PHP) für die Ausgabe, ggf. mit Templates.

Das erste Query funktioniert durch das Subquery natürlich auch erst ab 4.1.

Ein Workaroud kann man mit JOIN schreiben:
Code:
SELECT DISTINCT
  a.nachname,
  a.vorname,
  a.gruppe  
FROM GUESTS a
JOIN GUESTS b
  ON a.vorname=b.vorname
    AND a.nachname=b.nachname
    AND a.gruppe!=b.gruppe
ORDER BY a.nachname, a.vorname, a.gruppe
Mit PHP liest man das dann so aus:
PHP:
<?
//DB-Verbindung
$res=mysql_query("SELECT DISTINCT
          a.nachname,
          a.vorname,
          a.gruppe  
        FROM GUESTS a
        JOIN GUESTS b
          ON a.vorname=b.vorname
            AND a.nachname=b.nachname
            AND a.gruppe!=b.gruppe
        ORDER BY a.nachname, a.vorname, a.gruppe");

$tempVorname=null;
$tempNachname=null;
$tempGruppen=array();
while ($row=mysql_fetch_assoc($res)) {
    if ($row['vorname']!=$tempVorname 
            && $row['nachname']!=$tempNachname) {
        if ($tempVorname!=null && $tempNachname!=null) {
            $gruppen=implode(', ',$tempGruppen);
            echo $tempVorname
                .' '
                .$tempNachname
                .' ist in den Gruppen '
                .$gruppen
                .'.<br/>';
        }
        $tempVorname=$row['vorname'];
        $tempNachname=$row['nachname'];
        $tempGruppen=array();
    }
    $tempGruppen[]=$row['gruppe'];
}
if ($tempVorname!=null && $tempNachname!=null) {
    $gruppen=implode(', ',$tempGruppen);
    echo $tempVorname
        .' '
        .$tempNachname
        .' ist in den Gruppen '
        .$gruppen
        .'.';
}
?>
Gruß hpvw




Danke, mit dem JOIN gehts :)
 

Neue Beiträge

Zurück