Daniela Koller: left join ??

Beitrag lesen

Hi Matthias

Mein Versuch war:
SELECT Auto.Name FROM Auto LEFT JOIN FahrerAuto ON Auto.ID = FahrerAuto.AutoID WHERE FahrerAuto.FahrerID != 1 OR FahrerAuto.AutoID IS NULL

ohne die Bedingung " FahrerAuto.FahrerID != 1 OR " liefert mir mysql nur Auto 4 - weil das nicht in der Relation steht. Mit dieser Bedingung bekomme ich aber Auto 3, Auto 4 UND Auto 2 (welches ich aber nicht will) - weil Fahrer 2 dieses Auto fährt.

Das müsste klappen (ungetestet):

SELECT Auto.Name
  FROM Auto
    LEFT JOIN FahrerAuto
      ON (Auto.ID = FahrerAuto.AutoID
          AND FahrerAuto.FahrerID = 1)
  WHERE FahrerAuto.FahrerID IS NULL

FahrerAuto.FahrerID = 1 muss in die Join-Klausel mit rein, damit nur solche verbunden werden und du für alle anderen NULL kriegst, sonst passiert genau das was dein Problem war.

Gruss Daniela

--
Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&