Hallo Leute,
ich habe folgendes Problem:
Habe eine Tabelle Kunde mit Kundendaten.
In einer zweiten Tabelle werden die Kinder eines Kunden aufgelistet, mit Fremdschlüssel zur Kundennummer.
In einer dritten Tabelle wird das Einkommen für ein bestimmtes Jahr gespeichert, wieder mit Bezug auf die Kundennummer.
Angenommen, zum Kunde Meier sind ein Kind und 5 Einkommensdatensätze gespeichert und ich hole mir die Daten so heraus:
Dann bekomme ich 5 Zeilen mit den unterschiedlichen Einkommensdatensätzen, und in all den Zeilen steht 5-mal dasselbe Kind, obwohl es das nur einmal in der Datenbank gibt. Nun denk mein Programm, Meier hat 5 Kinder...
Ich möchte also, dass bei den restlichen Zeilen das Kind null ist.
Ich schätze mal, das geht mit dem Join gar nicht, weil es doch ein Kreuzprodukt der Tabellen ist, richtig?
Oder muss ich da wirklich zuerst den Kunden mit den Kindern Joinen, anschließend per Union mit dem Einkommen verbinden? Oder gibt es vielleicht eine andere Lösung?
Danke!
Andy
ich habe folgendes Problem:
Habe eine Tabelle Kunde mit Kundendaten.
In einer zweiten Tabelle werden die Kinder eines Kunden aufgelistet, mit Fremdschlüssel zur Kundennummer.
In einer dritten Tabelle wird das Einkommen für ein bestimmtes Jahr gespeichert, wieder mit Bezug auf die Kundennummer.
Angenommen, zum Kunde Meier sind ein Kind und 5 Einkommensdatensätze gespeichert und ich hole mir die Daten so heraus:
Code:
select k1.kunden_nr, ek.jahreseinkommen, kid.vorname from kunde k1 LEFT OUTER JOIN einkommen ek ON (ek.kunden_nr = k1.kunden_nr) LEFT OUTER JOIN kind kid ON (kid.kunden_nr = k1.kunden_nr)
Ich möchte also, dass bei den restlichen Zeilen das Kind null ist.
Ich schätze mal, das geht mit dem Join gar nicht, weil es doch ein Kreuzprodukt der Tabellen ist, richtig?
Oder muss ich da wirklich zuerst den Kunden mit den Kindern Joinen, anschließend per Union mit dem Einkommen verbinden? Oder gibt es vielleicht eine andere Lösung?
Danke!
Andy
Comment