Hallo zusammen,
ich habe:
eine User-Tabelle und zu den Usern gehörige Zusatzinfos in einer separaten Tabelle.
Ich brauche:
ein Result-Set das mir sämtliche User anzeigt, egal ob sie Zusatzinfos haben oder nicht (also auch wenn keine zugehörigen Datensätze in der Zusatztabelle stehen)
SELECT * FROM USER LEFT OUTER JOIN USER_INFOS
bringt mir ein entsprechendes ResultSet. :) Soweit so gut.
USER ist die primäre Relation.
ABER es geht noch weiter: jetzt will ich immer noch eine Liste aller USER und dazu nur bestimmte Zusatzinfos...also kriegt mein Statement noch eine Where-Bedingung.
Sobald ich aber
SELECT USER_NAME, MARKER FROM USER LEFT OUTER JOIN USER_INFOS WHERE USER_INFOS.MARKER = 27
absetze, scheint die Priorität auf die Tabelle USER nicht mehr zu ziehen.
Ich erhalte nur noch USER, die wirklich diesen MARKER = 27 gesetzt haben.
Eigentlich ja auch logisch....dafür ist die Where-Bedingung ja da.
Sie filtert nachdem alle Datensätze selektiert wurden.
Aber es muss doch eine Möglichkeit geben, im ResultSet immer noch alle USER zu erhalten!?
Ziel wäre eine Ergebnismenge mit allen Usern: wer keine Zusatzinfos hat, bekäme ein Null-Value in der Spalte MARKER des ResultSets.
Hat jemand eine Idee??
Bin für jeden tip dankbar.
Ich mache vermutlich einfach nur einen blöden Denkfehler... ;)
Viele Grüße
Jutta