Problem mit einfacher SQL-Anfrage

also das will ich ja nicht.
dann werden ja auch andere daten angezeigt, die ich nicht sehen will.
Ergänze ich die Tabelleneinträge, um folgende Werte:

Tabelle A

1005
1006
1007

Tabelle B

1005 14
1007 16


dann erhalte ich ja auch z.B. 1006 zurück, obwohl der nicht die Nummer 10 hat. Das ist ein verzweigte Abhängigkeit, verstehst du?
 
Willst Du denn die 1001 haben oder nicht?
Schreib doch mal das gewünschte Ergebnis hierzu hin:
Tabelle A:

Tabelle_A_id
1001
1002
1003
1004
1005
1006
1007

Tabelle B:

Tabelle_B_id Nummer
1002 10
1003 10
1004 12
1005 14
1007 16
 
Aha, die Bedingung lautet:
Finde alle Einträge, die in Tabelle B nicht existieren oder nicht die Nummer 10 haben.
Code:
SELECT *
FROM TabelleA
LEFT JOIN TabelleB
ON TabelleA.TabelleA_id=TabelleB.Tabelle_B_id
WHERE TabelleB.Nummer <> 10 
  OR TabelleB.Tabelle_B_id IS NULL
Alternative Syntax (Du weißt ja, ich kann bei Access nur raten):
Code:
SELECT *
FROM TabelleA
LEFT JOIN TabelleB
ON TabelleA.TabelleA_id=TabelleB.Tabelle_B_id
WHERE (NOT (TabelleB.Nummer = 10)) 
  OR TabelleB.Tabelle_B_id IS NULL
Und noch eine Alternative:
Code:
SELECT *
FROM TabelleA
LEFT JOIN TabelleB
ON TabelleA.TabelleA_id=TabelleB.Tabelle_B_id
WHERE TabelleB.Nummer != 10 
  OR TabelleB.Tabelle_B_id IS NULL

Wenn ich es mir richtig überlege, könnte dies auch reichen:
Code:
SELECT *
FROM TabelleA
LEFT JOIN TabelleB
ON TabelleA.TabelleA_id=TabelleB.Tabelle_B_id
WHERE (NOT (TabelleB.Nummer = 10))
Oder halt wie oben angepasste Syntax.
 

Neue Beiträge

Zurück