Hallo,
» Wenn Deine Abfrage den Dir bekannten Datensatz *nicht* zurückliefert, dann muss meiner Meinung nach dieser Datensatz eben *kein* Spezialfall sein, d.h.
» entweder ist der Wert in der Spalte type nicht 'st' oder der Wert in item taucht doch in Deiner zweiten Tabelle auf.
» Bitte prüfe daher genau diesen Dir bekannten Fall auf diese zwei Bedingungen. Einzeln.
Das hast du mich falsch verstanden - dieser Fall IST ein RICHTIGER FALL
dann muss ihn die Logik:
Gib mir die Datensätze,
die in der Spalte einen bestimmten Wert haben
und
deren id nicht in der Liste von ids einer anderen Tabelle auftaucht
falsch sein. Sorry, existierende SQL-Implementierungen machen nicht solch grundlegende Fehler. Wenn beide Bedingungen erfüllt sind, dann wird die Abfrage diesen Datensatz zurückliefern. Wenn die Abfrage keinen Datensatz zurückliefert, dann gibt es keinen Datensatz, der diese Bedingungen erfüllt.
Eventuell schließen ihn weitere Bedingungen aus, die Du der Vereinfachung halber hier weggelassen hast. Ohne Deine Daten zu kennen, kann man Dir nicht weiterhelfen. Deine Abfrage ist völlig korrekt, was die von Dir geschilderte Logik betrifft.
Freundliche Grüße
Vinzenz