Hallo !
Ich bin ein ziemlicher SQL Neuling und beiße mir gerade die Zähne an einer (für mich recht schwierigen) SQL Abfrage aus. Meine Tabellen und Beziehungen sehen so aus:
TBauteile = {pkID; Name}
TPinDefinitionen = {pkID; PinNr; pinFunktionID}
TPinFunktionen = {pkID; fName}
TBauteilPinZuordnungen = {fkBauteilID; fkPinDefinitionID}
TPinDefinitionen:: pinFunktionID ist der Fremdschlüssel in die TPinfunktionen Tabelle.
TTBauteilPinZuordnungen::fkBauteilID ist der Fremschlüssel in die TBauteile Tabelle, und ::fkPinDefinitionID ist der Fremdschl. in die TPinDefinitionen Tabelle.
Über diese Tabellen und ihren Beziehungen kann also jedem Bauteil und all seinen Pins keine, eine oder mehrere (wohldefinierte) "Pin Funktionen" zugeordnet werden (es kann auch einem Pin eines Bauteils zwei oder mehrere Funktionen zugewiesen werden!).
Abfragen:
Gegeben sei eine _Liste_ von Tupeln bestehend aus PinNr und pinFunktionID (z.B. über eine GUI-Such-Maske), jetzt soll folgendes ermittelt werden:
A) Alle Bauteile deren entsprechenden Pins _mindestens_ die genannte(n) Funktionen zugeordnet wurden.
B) Alle Bauteile deren entsprechenden Pins _exakt_ die genannten(n) Funktionen und keine weiteren zugeordnet wurden.
Über ein INNER JOIN kann ich bereits eine Tabelle erstellen, die für jede Bauteile-ID und Pin-Nr die Pin-Funktionen auflistet. Wenn ich bspw. nur ein Filterkriterium hätte (meinetwegen nur Pin-Funktion), dann würde ich ds wohl über IN(...) machen, aber wie filtere ich nach meiner Tupel-Liste?
Hoffe jemand kann mir helfen, besten Dank im voraus!
Gruß, Micha
Ich bin ein ziemlicher SQL Neuling und beiße mir gerade die Zähne an einer (für mich recht schwierigen) SQL Abfrage aus. Meine Tabellen und Beziehungen sehen so aus:
TBauteile = {pkID; Name}
TPinDefinitionen = {pkID; PinNr; pinFunktionID}
TPinFunktionen = {pkID; fName}
TBauteilPinZuordnungen = {fkBauteilID; fkPinDefinitionID}
TPinDefinitionen:: pinFunktionID ist der Fremdschlüssel in die TPinfunktionen Tabelle.
TTBauteilPinZuordnungen::fkBauteilID ist der Fremschlüssel in die TBauteile Tabelle, und ::fkPinDefinitionID ist der Fremdschl. in die TPinDefinitionen Tabelle.
Über diese Tabellen und ihren Beziehungen kann also jedem Bauteil und all seinen Pins keine, eine oder mehrere (wohldefinierte) "Pin Funktionen" zugeordnet werden (es kann auch einem Pin eines Bauteils zwei oder mehrere Funktionen zugewiesen werden!).
Abfragen:
Gegeben sei eine _Liste_ von Tupeln bestehend aus PinNr und pinFunktionID (z.B. über eine GUI-Such-Maske), jetzt soll folgendes ermittelt werden:
A) Alle Bauteile deren entsprechenden Pins _mindestens_ die genannte(n) Funktionen zugeordnet wurden.
B) Alle Bauteile deren entsprechenden Pins _exakt_ die genannten(n) Funktionen und keine weiteren zugeordnet wurden.
Über ein INNER JOIN kann ich bereits eine Tabelle erstellen, die für jede Bauteile-ID und Pin-Nr die Pin-Funktionen auflistet. Wenn ich bspw. nur ein Filterkriterium hätte (meinetwegen nur Pin-Funktion), dann würde ich ds wohl über IN(...) machen, aber wie filtere ich nach meiner Tupel-Liste?
Hoffe jemand kann mir helfen, besten Dank im voraus!
Gruß, Micha
Comment