Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Verknüpfte Abfragen

Begonnen von sllani, August 23, 2016, 13:41:48

⏪ vorheriges - nächstes ⏩

sllani

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!


DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

sllani

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.



Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

sllani

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!



DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

sllani

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.