Nachdem ich aus dem letzten Thema gelernt habe, wie das funktioniert, mit left join und right join kommt jetzt die advanced Version.
Ich möchte 2 Namen zu jedem Datensatz joinen.
Die umständliche Variante, ohne join wäre so:
Wenn ich jetzt versuche die Lösung aus dem letzten Thema anzupassen
dann habe ich gleich mehrere Probleme:
1) Ich brauche 2 Namen aus 2 verschiedenen Datensätzen der members Tabelle für jede Zeile aus tabelle1, aber wie bringe ich dem Ergebnis bei, dass ich dafür 2 verschiedene Spaltennamen brauche?
2) Das Ergebnis soll aus der members Tabelle die beiden Namen enthalten, aber keine weiteren Spalten aus der members Tabelle, dafür sollen alle Spalten aus tabelle1 enthalten sein, vermutlich also
SELECT a.`name`, b.*
aber selbst wenn das stimmt, beide Namen habe ich dann immer noch nicht.
3) Aus
ON a.`id` = b.`id`
müsste vermutlich sowas werden:
ON a.`id` = b.`id1` OR a.`id` = b.`id2`
aber wie bringe ich das Ergebnis dazu beides in denselben Datensatz zu packen?
Ich möchte 2 Namen zu jedem Datensatz joinen.
Die umständliche Variante, ohne join wäre so:
Code:
$liste = array();
$abfrage = mysql_query("SELECT * FROM `tabelle1` WHERE `irgendwas` = ".$irgendwas);
while($row = mysql_fetch_object($abfrage))
{
$name1 = mysql_fetch_object(mysql_query("SELECT `name` FROM `members` WHERE `id` = ".$row->id1));
$name2 = mysql_fetch_object(mysql_query("SELECT `name` FROM `members` WHERE `id` = ".$row->id2));
$row->name1 = $name1->name;
$row->name2 = $name2->name;
$liste[] = $row;
}
Wenn ich jetzt versuche die Lösung aus dem letzten Thema anzupassen
Code:
$abfrage = mysql_query("SELECT a.`name` FROM `members` AS a RIGHT JOIN `tabelle1` AS b ON a.`id` = b.`id`");
dann habe ich gleich mehrere Probleme:
1) Ich brauche 2 Namen aus 2 verschiedenen Datensätzen der members Tabelle für jede Zeile aus tabelle1, aber wie bringe ich dem Ergebnis bei, dass ich dafür 2 verschiedene Spaltennamen brauche?
2) Das Ergebnis soll aus der members Tabelle die beiden Namen enthalten, aber keine weiteren Spalten aus der members Tabelle, dafür sollen alle Spalten aus tabelle1 enthalten sein, vermutlich also
SELECT a.`name`, b.*
aber selbst wenn das stimmt, beide Namen habe ich dann immer noch nicht.
3) Aus
ON a.`id` = b.`id`
müsste vermutlich sowas werden:
ON a.`id` = b.`id1` OR a.`id` = b.`id2`
aber wie bringe ich das Ergebnis dazu beides in denselben Datensatz zu packen?