collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14542
  • stats Beiträge insgesamt: 72939
  • stats Themen insgesamt: 9848
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 443

Autor Thema: JOIN Abfrage verschachtel mit mehreren Tabellen  (Gelesen 6230 mal)

Offline hmfmartin

  • Newbie
  • Beiträge: 6
JOIN Abfrage verschachtel mit mehreren Tabellen
« am: Mai 25, 2010, 18:13:36 »
Hallo,
Ich habe folgendes Problem ich möchte mit eine Abfrage erstellen wo nur Kunden angezeigt werden die einen Artikel bestellt haben der mit 'E' beginnt.

Ich habe 4 Tabellen

T_Artikel
*artikelnummer
*bezeichnung

T_Position
*bestell_nr
*artikelnummer

T_Kunde
*K_nr
*name

T_Bestellungen
*bestell_nr
*k_NR


SELECT  T_Kunden.name
FROM T_Kunden INNER JOIN
WHERE T_Artikel.bezeichnung LIKE 'E*';

muss ich jetzt alle 4 Tabellen verknüpfen mit einem JOIN oder geht dies auch einfacher???
Wie sieht so ein verknüpfter JOIN aus???

Gruß
martin
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8179
Re: JOIN Abfrage verschachtel mit mehreren Tabellen
« Antwort #1 am: Mai 25, 2010, 18:31:00 »
Hallo,
Du solltest eigentlich bereits im Beziehungsfenster die Beziehungen anlegen.
Für Deine Abfrage brauchst Du alle 4 Tabellen mit den Beziehungen. Wenn im Beziehungsfenster diese angelegt sind, werden diese von der Abfrage automatisch übernommen.
Die Tabellen müssen zwingend in Beziehung stehen ((Join). Nein, einfacher geht es nicht.
Gruß
Klaus
 

database

  • Gast
Re: JOIN Abfrage verschachtel mit mehreren Tabellen
« Antwort #2 am: Mai 25, 2010, 20:05:34 »
Hallo Martin,
erstmal folgendes:
Zitat
Wie sieht so ein verknüpfter JOIN aus
So etwas gibt es nicht - einen verknüpften Join.
Mittels eines JOIN (ist nix zum Rauchen) wird zwischen zwei Tabellen eine Beziehung hergestellt.
Habe in der Antwort zu deiner vorangegangenen Frage eine Abfragevariante mit JOINS angeboten!

Wenn so, wie MzKlMu bereits richtig erwähnt hat, die Beziehungen zwischen den Tabellen im Vorfeld im Beziehungsfenster festgelegt sind, sind diese Tabellen bereits 'verJoint'.

Ziehst du die Tabellen in den Abfrageeditor siehst du die Beziehungslinien zwischen den Tabellen, gibst du Kriterien an und schaust dir danach (Rechtsklick in den Tabellenbereich und auswählen SQL-Ansicht) die SQL der Abfrage an kannst du die Joins herauslesen.
SQL = Structured Query Language ----  quasi die Standardabfragesprache im Umfeld von relationalen Datenbanken.

Die Deklaration dieser Joins erfolgt sinngemäß immer auf die gleiche Weise:

Tabelle1 INNER JOIN Tabelle2
ON Tabelle1.Primärschlüssel = Tabelle2.Fremdschlüssel

Wobei nun die Beziehung für die Abfrage der beiden Tabellen so ausgelegt ist, dass im Ergebnis die Inhalte der verknüpften Felder gleich ist (INNER JOIN).
Dazu gibts jede Menge Literatur im Netz der Netze - würde dir empfehlen dich mit SQL näher zu beschäftigen, wenn du des Öfteren mit Abfragen zu tun hast!

Nun zu deiner Frage:
SELECT T_Position.bestell_nr, T_Kunde.KName, T_Artikel.Bezeichnung
FROM (T_Kunde INNER JOIN T_Bestellungen ON T_Kunde.k_nr = T_Bestellungen.k_nr)
INNER JOIN (T_Artikel INNER JOIN T_Position ON T_Artikel.Artikelnummer = T_Position.Artikelnummer)
ON T_Bestellungen.bestell_nr = T_Position.bestell_nr
WHERE ((Left([Bezeichnung],1)="E"));

Diese Abfrage mit VERSCHACHTELTEN JOINS sollte das von dir erwartete Ergebnis liefern.
Ich habe für das Kriterium Links(Bezeichnung;1)="E" genommen, da diese Variante der Kriterienangabe keinen Tablescan verursacht der bei sehr umfangreichen Tabellen recht an der Performance kratzt.

HTH

Peter
 

Josef

  • Gast
Re: JOIN Abfrage verschachtel mit mehreren Tabellen
« Antwort #3 am: Mai 25, 2010, 20:26:12 »
Zitat
Ich habe für das Kriterium Links(Bezeichnung;1)="E" genommen, da diese Variante der Kriterienangabe keinen Tablescan verursacht der bei sehr umfangreichen Tabellen recht an der Performance kratzt.
War das ein Tippfehler ... oder funktionierte mein Ironie-Detektor nicht? :)
Left([Bezeichnung],1)="E" erzeugt auch bei einem Index über Bezeichnung immer einen Scan und niemals ein Seek.

mfg
Josef
 

database

  • Gast
Re: JOIN Abfrage verschachtel mit mehreren Tabellen
« Antwort #4 am: Mai 25, 2010, 21:00:26 »
 Hallo Josef,

Zitat
oder funktionierte mein Ironie-Detektor nicht
Aha, gibts das im Elektrohandel oder ist das akademischer Eigenbau??

nein kein Tippfehler aber durch die Länge des Textes hat es den ganzen Text nicht mehr angezeigt und mir ist nicht aufgefallen dass da ein Teil vom Satz gefehlt hat - da fehlen fast 2 Zeilen - ist aber interessant, dass trozdem das Ganze lesbar und ohne Grammatikfehler dasteht - ist vermutlich beim Ausbessern eines Rechtschreibfehlers passiert :)

Zitat
Left([Bezeichnung],1)="E" erzeugt auch bei einem Index über Bezeichnung immer einen Scan
na no na net
Gehe davon aus, dass im Fall der Suche nach dem ganzen Wort bei indiziertem Feld ein Seek veranlasst wird und somit die Suche über den Index ausgeführt wird. ;)

Aber egal die Erklärung wäre vielleicht auch zu umfangreich und umständlich ausgefallen also streichen wir den Satz.
Greets
Peter
 

Offline hmfmartin

  • Newbie
  • Beiträge: 6
Re: JOIN Abfrage verschachtel mit mehreren Tabellen
« Antwort #5 am: Mai 28, 2010, 14:10:03 »
Hallo Peter,
erstmal danke für deine Hilfe, ich habe auch den code aus meiner anderen Frage verwendet und hat beides gut funktioniert.

 ;)

Also dann.....

gruß

martin
 

 

Problem mit SQL String In Vba Duplikaten suche mit INNER JOIN und Filterkriteri

Begonnen von Frank77Board Tabelle/Abfrage

Antworten: 1
Aufrufe: 1678
Letzter Beitrag Dezember 02, 2011, 16:21:26
von Frank77
JOIN mit Teilergebnissen aus einer Tabelle

Begonnen von Collector_XBoard Tabelle/Abfrage

Antworten: 2
Aufrufe: 2141
Letzter Beitrag April 09, 2012, 18:49:43
von MzKlMu
Über JOIN-Tabelle nachgeschlagener Wert ändert Datensatz der Quell-Tabelle

Begonnen von TobiasWBoard Formular

Antworten: 4
Aufrufe: 1459
Letzter Beitrag Oktober 15, 2013, 23:03:14
von MzKlMu
Join Funktioniert nicht!

Begonnen von tina90Board Tabelle/Abfrage

Antworten: 1
Aufrufe: 1180
Letzter Beitrag April 30, 2014, 21:47:41
von Hondo
Abrfage mit Inner Join

Begonnen von PaulchenBoard Tabelle/Abfrage

Antworten: 5
Aufrufe: 2151
Letzter Beitrag Oktober 10, 2014, 20:14:20
von Paulchen

Advertisment / Werbung - Amazon Affiliate Links