Hallo,
ich habe eine Datenbank im Style von 1:n.
Code:
Tabelle 1: personen
ident | name
--------------
1 | Flo
2 | Alf
3 | Mike
4 | Benni
Tabelle 2: eigenschaftem
ident | zuperson | eigenschaft | wert
-----------------------------
1 | 1 | alter | 25
2 | 1 | farbe | rot
3 | 2 | alter | 26
4 | 2 | lieblingstier | hund
5 | 3 | farbe | blau
Der Aufbau muss leider so sein, da die Eigenschaften als Textfeld eingegeben werden müssen. Mir wäre dann eine n:m-Beziehung auch lieber, aber das die Daten von anderer Seite kommen habe ich leider keinen Einfluss auf die Struktur.
Mein Problem ist, ich bräuchte jetzt eine Ausgabe die Mir alle Namen mir dem passenden Alter zeigen:
Code:
Alf => 26
Flo => 25
Mike =>
Benni =>
Da ich nicht alle Felder in Tabelle eigenschaften habe benutze ich einen LEFT JOIN.
Mein Versuch:
Code:
SELECT p.ident, p.name, e.wert AS alter
FROM personen p
LEFT JOIN eigenschaften e
ON (e.zuperson=p.ident) AND (e.eigenschaft='alter')
ORDER BY e.wert DESC, p.name ASC;
Lieder bekomme ich nur
Code:
Alf => 26
Flo => 25
ich habe auch schon versucht das ganze mit in die WHERE zu schreiben. Ich bekomme nicht alle 4 Personen, egal wie ich es anstelle.
Bitte um Hilfe.
Danke,
Stefan