Gast: Kann ich statt eines JOIN einen zweiten Satz bekommen?

Beitrag lesen

Hallo, Vinzenz,

wenn Du keine Tabellen mit Beispieldaten, dem gewünschten Ergebnis und der Begründung dafür lieferst, dann ist das wie im Dunklen umhertappen. Sowas macht mir keinen Spass.

Es handelt sich um einen Monster-Select, der jetzt schon acht JOINS hat. Da wird der Ort dazugeholt, verwendete Sprachen und Übersetzungstabellen. Ich versuche, das Teilproblem herauszulösen:

id    name            ort_id  ueber_id
----- --------------- ------- --------
0815  Aldi-Zentrale   13556   NULL
4711  Aldi Frankfurt  17342   0815
4712  Mustermann      16344   NULL

Mit einem (und nur einem) SELECT greife ich id=4711 und möchte 0815 als zweiten Datensatz dazugeliefert bekommen. Wenn ich id=4712 greife, kommt nur ein Datensatz.

Wenn ich die Zentrale mit einem JOIN dazuhole, muss die Spalte name ein zweites Mal benannt sein, etwa name2. Dadurch kann ich aber im folgenden PHP nicht dieselbe Routine für Filiale und Zentrale nutzen, das möchte ich aber gerne.

Vielleicht suchst Du ja Subqueries, vielleicht willst Du auch überhaupt keine OUTER JOINS, dein Text oben hört sich danach an :-)

Ist das mit einem Subquery zu machen?

SELECT per1.name, ...
FROM  personen per1
WHERE per1.id = '4711' OR per1.id = (SELECT per2.id FROM personen per2 WHERE per2.id = per1.ueber_id)

Nee *überleg*

WHERE per1.id = '4711' OR per1.id = per1.ueber_id

Nee, auch nicht. Hast du verstanden, wo mein Problem ist?

Gruß, Gast