2 Tabellen Abfragen aus der gleichen Tabelle
Max
- datenbank
- mysql
Ich möchte folgendes erreichen und bitte um etwas Schützenhilfe. Es soll immer die ID und der Titel aller Datensätze ausgegeben werden. Wenn in der Spalte ZUORDNUNG ein WERT grösser 0 ist, also eine Zuordnung besteht, soll auch die Zuordnungs-ID und der ZuordnungsTitel ausgegeben werden. Bei mir klappt die Ausgabe nur mit den Einträgen in denen es eine Zuordnung gibt. Ich denke man müsste in der WHERE Abfrage noch eine WENN grösser NULL ist installieren.
Danke Max
id titel zuordnung
1 titel 0
2 titel 0
3 titel 1
4 titel 0
Die Ausgabe sollte so sein
ID Titel Zuordnung Titel
1 titel 0
2 titel 0
3 titel 1 titel
4 titel 0
SELECT
a.id, a.titel,
b.id,
b.titel AS titel2
FROM
table a,
table b
WHERE
b.zuordnung = a.id
Tach!
Es soll immer die ID und der Titel aller Datensätze ausgegeben werden. Wenn in der Spalte ZUORDNUNG ein WERT grösser 0 ist, also eine Zuordnung besteht, soll auch die Zuordnungs-ID und der ZuordnungsTitel ausgegeben werden.
Das klingt nach einem Left (Outer) Join. Siehe Einführung in Joins
Bei mir klappt die Ausgabe nur mit den Einträgen in denen es eine Zuordnung gibt. Ich denke man müsste in der WHERE Abfrage noch eine WENN grösser NULL ist installieren.
NULL und 0 sind zwei verschiedene Dinge. Meinst du wirklich NULL? Das kann man zwar auf größer/kleiner vergleichen, aber wann immer NULL im Spiel ist, ist das Ergebnis auch NULL.
dedlfix.
Hallo Max,
schau mal ins Wiki, da gibt es auch eine Einführung in Joins. Du verwendest einen INNER JOIN, möchtest aber vielleicht einen anderen Join, z.B. den LEFT JOIN verwenden.
Gruß, Dennis
Danke... ich versuch mich mal in Euren Tipps
Danke..
Jetzt funktioniert es...
Hier meine Lösung:
SELECT
b.id,
b.titel,
a.id AS id2,
a.titel AS titel2
FROM
table a
right JOIN
table b ON a.id = b.zuordnung
ORDER by b.titel ASC