Leif Eickhoff
2006-03-25 09:13:59 UTC
hallo,
ich habe gestern zu ersten mal mit left joins gearbeitet und meine frage ist
daher vermutlich banal. ich habe aber in google nichts dazu gefunden,
wahrscheinlich deshalb, weil mir der passende suchgegriff fehlt.
zu meiner frage:
ich möchte einen left join uber zwei tabellen machen, jedoch eine bedingung
einfügen die sich auf die rechte tabelle bezieht. laut meiner referenz wird
bei einer nicht zutreffenden zeile eine zeile mit NULL werten zum join mit
der linken tabelle verwendet.
daher habe ich mir gedacht das es so vielleicht funktionieren könnte:
SELECT * FROM links LEFT JOIN rechts WHERE links.ID=rechts.ueberID AND
(rechts.aktiv='1' OR rechts.aktiv=NULL)
leider liefert die abfrage nur zeilen in denen rechts.aktiv='1' zutrifft.
gibt es eine methode die bedingung "WHERE rechts.aktiv='1'" beizubehalten,
aber trotzdem auch die datensätze abzurufen für die kein eintrag in der
rechten tabelle existiert?
vielen dank!
gruß leif
ich habe gestern zu ersten mal mit left joins gearbeitet und meine frage ist
daher vermutlich banal. ich habe aber in google nichts dazu gefunden,
wahrscheinlich deshalb, weil mir der passende suchgegriff fehlt.
zu meiner frage:
ich möchte einen left join uber zwei tabellen machen, jedoch eine bedingung
einfügen die sich auf die rechte tabelle bezieht. laut meiner referenz wird
bei einer nicht zutreffenden zeile eine zeile mit NULL werten zum join mit
der linken tabelle verwendet.
daher habe ich mir gedacht das es so vielleicht funktionieren könnte:
SELECT * FROM links LEFT JOIN rechts WHERE links.ID=rechts.ueberID AND
(rechts.aktiv='1' OR rechts.aktiv=NULL)
leider liefert die abfrage nur zeilen in denen rechts.aktiv='1' zutrifft.
gibt es eine methode die bedingung "WHERE rechts.aktiv='1'" beizubehalten,
aber trotzdem auch die datensätze abzurufen für die kein eintrag in der
rechten tabelle existiert?
vielen dank!
gruß leif