Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: sllani am August 23, 2016, 13:41:48

Titel: Verknüpfte Abfragen
Beitrag von: sllani am August 23, 2016, 13:41:48
Hallo zusammen,

ich stehe leider gerade ziemlich auf dem Schlauch.
Ich habe zwei Tabellen die über eine Zwischentabelle verknüpft sind:

Tabelle 1: enthält Kleidungselemente Kleid, Rock, Bluse etc.
Tabelle 2: enthält Farben mit Beschreibungen also z.B. blau, grün, gelb, rosa etc.
In der Zwischentabelle werden die beiden Tabellen miteinander verknüpft. (also bspw. kleid - rosa, kleid - grün, Rock - rosa, Rock - blau).

Ich versuche jetzt in einer Abfrage alle Farben zu bekommen, die noch nicht mit einem der Kleidungselemente verknüpft sind. Also zum Beispiel möchte ich, dass er mir ausspuckt, dass es noch kein blaues oder grünes Kleid gibt, auch wenn es einen blauen Rock gibt.
Gibt es da eine elegante Lösung oder bleibt mir nur die Möglichkeit über Schleifen zu gehen?

viele Grüße!

Titel: Re: Verknüpfte Abfragen
Beitrag von: DF6GL am August 23, 2016, 14:02:05
Hallo,

vermutlich liegt das Tabellenkonzept noch im Argen...

Zeige bitte den Screenshot des Beziehungsfensters.

Wenn der Tabellenaufbau (Normalisierung) stimmt, dann hilft dies:

http://www.donkarl.com/?FAQ3.16
Titel: Re: Verknüpfte Abfragen
Beitrag von: sllani am August 23, 2016, 14:46:55
Hallo,

im Anhang ist meine Beziehung zu den Tabellen. Im Prinzip habe ich eine einfache Zwischentabelle zwischen zwei n-n Tabelle gebaut.
Wie man Datensätze ausliest, die nicht in beiden Tabellen enthalten sind, ist mir prinzipiell klar, aber ich stehe gerade komplett auf dem Schlauch, wie ich diese Auswahl wiederum mit einer weiteren Bedingung verknüpfe. Was ich damit sagen will, ich kann mir alle Datensätze anzeigen, die in der Farben-Tabelle enthalten sind aber nicht in der Zwischentabelle (wie auf der Donkarl-Seite auch gezeigt), aber ich verstehe nicht, wie ich ihm in die Abfrage noch die Bedingung einbaue, dass er nur die Einträge vergleicht, die auch den Fremdschlüssel Rock z.B. haben. Müsste aber doch eigentlich recht einfach gehen, oder?

Viele Grüße.


Titel: Re: Verknüpfte Abfragen
Beitrag von: Beaker s.a. am August 23, 2016, 15:08:49
Hallo,
Ergänze um eine WHERE-Klausel:
WHERE kele_id_f = kele_idFürRock
Die ID für Röcke musst du natürlich irgendwo herholen, oder fest verdrahten WHERE kele_id_f = 5

hth
gruss ekkehard
Titel: Re: Verknüpfte Abfragen
Beitrag von: sllani am August 23, 2016, 15:48:38
Hallo Ekkehard,

danke für deine Antwort. Wo genau baue ich denn die Where Klausel ein?
AKTUELL (gibt aber halt nur die Datensätze wieder die gar nicht in der Zwischentabelle sind und nicht nur die, die nicht in einer Beziehung zu z.B Röcken stehen):

SELECT tbl_Farbe.*
FROM tbl_Farbe LEFT JOIN tbl_Kele_Farbe ON tbl_Farbe.farbe_id = tbl_Kele_Farbe.farbe_id_f
WHERE tbl_Kele_Farbe.farbe_id_f Is Null


Wenn ich jetzt die zusätzliche Bedingung einfach dran hänge mit AND ... dann findet er natürlich gar nichts. Ich verstehe aber leider nicht, wo ich noch eine Bedingung einfügen soll, dass er nur die bestimmten Datensätze der Zwischentabelle überhaupt vergleicht.

Liebe Grüße!


Titel: Re: Verknüpfte Abfragen
Beitrag von: DF6GL am August 23, 2016, 16:17:35
Hallo,

ich versteh jetzt gar nicht , was Du willst...

Ich lese, dass Du alle Farben wissen willst, die noch nicht in der Zwischentabelle vorkommen..

Was hat der "Rock" damit zu tun?

Wenn Du den Kleidungstück-PK zusätzlich sehen willst, muss der in der Select-Liste mit aufgeführt werden:

SELECT tbl_Farbe.* , kele_id_f
From ....

Ansonsten muss tbl_Kelemente  zusätzlich mit inner Join verknüpft werden.
Titel: Re: Verknüpfte Abfragen
Beitrag von: Beaker s.a. am August 23, 2016, 17:07:30
Moin,
Ich glaube er will die fehlenden Farben nur für z.B. Röcke finden.
Bekomme ich aber (immer noch) nicht so aus der hohlen Hand
hingeschrieben.
gruss ekkehard
Titel: Re: Verknüpfte Abfragen
Beitrag von: sllani am August 23, 2016, 17:32:58
Hallo,

danke für eure Hilfen! Ich gehe jetzt über eine temporäre Abfrage, die mir zunächst nur die Einträge aus der Zwischentabelle gibt, die ich vergleichen will (also z.B. alle mit Rock) und vergleiche dann welche Farben in der temporären Abfrage noch nicht vorhanden sind. Damit bekomme ich alle Farben, zu denen es noch keine Röcke gibt.

Viele Grüße.