Mahlzeit jüla,
Was ich nicht hinbekomme ist folgende Abfrage: Alle Bücher einer JgSt, die nicht in dem Stapel mit der stapelid=1 sind.
SELECT b.*
FROM bucher AS b
JOIN buch_in_stapel AS bis ON (b.id = bis.buchid AND bis.stapelid <> 1)
WHERE b.jgst = :deinwert
Das beste, was ich hinbekomme habe ist:
select *
Du holst Dir also *alles* (nicht nur die Daten der Bücher) - willst Du das *wirklich*?
from bucher
join stack on bucher.JgSt=bücherstapel.JgSt and bücherstapel.id=1
Was genau ist denn jetzt "stack"? Falls es sich dabei um den "bücherstapel" handelt: ich hätte jetzt gedacht, dass die Tabelle "buch_in_stapel" die n:m-Zuordnung zwischen den Tabellen "bucher" und "bücherstapel" ist - ist das nicht so? Und wieso verknüpfst Du die beiden Tabellen über die "JgSt", du willst doch nur die Bücher einer bestimmten "JgSt", nicht aber die Bücherstapel? Oder doch? Außerdem legst Du hier als Bücherstapel-ID die 1 fest ... ich dachte, Du willst gerade diesen Stapel mit der ID = 1 *nicht*?
Mir scheint, dass entweder Deine Aufgabenstellung nicht ganz klar ist oder Du eigentlich gar nicht so richtig weißt, was Du tust. :-)
Hat jemand einen Vorschlag?
Ja: beschreibe die Abhängigkeiten der Tabellen voneinander (Fremdschlüsselbeziehungen und *fachliche* Bedeutung der Tabellen und Spalten). Anschließend erkläre bitte einmal detailliert, was Du *fachlich* willst.
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|