Inner join über 3 Tabellen
Hallo zusammen,
ich habe folgendes Problem:
Ich muß aus unserem ERP System mehrere Infos heraus ziehen.
Hierfür benötige ich Informationen aus 3 Tabellen.
Tabelle 1 beinhaltet 8 von 10 Werte
Tabelle 2 ist die Verknüpfung von 1 nach 3
Tabelle 3 bittet den Einstieg mit einer Information zu einer Rechnungsnummer, über die es dann weiter geht und die beiden letzten Infos
Bei einem select über eine Tabelle, entstehen keine Fehler.
Anfänger Problem / Frage:
Wenn ich die Tabellen über einen Inner Join verbinde, erhalte ich alle Infos doppelt.
Ich habe bereits unter Google nachgeschaut, wie ein Inner join aufgebaut ist, und wie er eingesetzt wird. Finde allerdings keine Lösung für mein Problem
Besten Dank für die Hilfe
ich habe folgendes Problem:
Ich muß aus unserem ERP System mehrere Infos heraus ziehen.
Hierfür benötige ich Informationen aus 3 Tabellen.
Tabelle 1 beinhaltet 8 von 10 Werte
Tabelle 2 ist die Verknüpfung von 1 nach 3
Tabelle 3 bittet den Einstieg mit einer Information zu einer Rechnungsnummer, über die es dann weiter geht und die beiden letzten Infos
Bei einem select über eine Tabelle, entstehen keine Fehler.
Anfänger Problem / Frage:
Wenn ich die Tabellen über einen Inner Join verbinde, erhalte ich alle Infos doppelt.
Ich habe bereits unter Google nachgeschaut, wie ein Inner join aufgebaut ist, und wie er eingesetzt wird. Finde allerdings keine Lösung für mein Problem
Besten Dank für die Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287489
Url: https://administrator.de/contentid/287489
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
10 Kommentare
Neuester Kommentar
Du wirst in einer der 3 Tabellen Datensätze "doppelt" haben. Das kann durchaus richtig sein, hängt stark vom Aufbau ab. Hier sollte man dann im Join einschränken.
Beispiel
Tabelle A
pk_A
1
2
Tabelle B
pk_A, pk_C, Aktion
1, 1, Erstanlage
1, 1, Update
2, 2, Erstanlage
Tabelle C
pk_C
1
2
...raus kommen halt 3 Zeilen es sei denn ich sage z.B. in der Join Bedingung von Tabelle B das Aktion = 'Erstanlage' sein muss.
Beispiel
Tabelle A
pk_A
1
2
Tabelle B
pk_A, pk_C, Aktion
1, 1, Erstanlage
1, 1, Update
2, 2, Erstanlage
Tabelle C
pk_C
1
2
...raus kommen halt 3 Zeilen es sei denn ich sage z.B. in der Join Bedingung von Tabelle B das Aktion = 'Erstanlage' sein muss.
Ich merke schon, Du bist Minimalist, kein Wort zuviel
Grundsätzlich mal sieht der Befehl richtig aus.
Es wird also so sein, wie ukulele schreibt, Du hast doppelte Datensätze. Womöglich sind Deine joins durch
WPRTVOUCHSUBITEMS.lot_no = wtrans.lot_no"
bzw.
pfeedbacks.ord_no = Wtrans.ord_no
noch nicht vollständig.
Du solltest mal Deine Fremdschlüssel prüfen, ob da vielleicht noch eine Bedingung rein muß. Vielleicht ist ja in pfeedbacks auch noch eine "lot_no" drin, die dann auch noch mit ins join müßte.
Aber Wie schon gesagt, wenn Du keine Infos rausgibst, dann kann man Dir eben nicht helfen.
Gruß, Mad Max
Grundsätzlich mal sieht der Befehl richtig aus.
Es wird also so sein, wie ukulele schreibt, Du hast doppelte Datensätze. Womöglich sind Deine joins durch
WPRTVOUCHSUBITEMS.lot_no = wtrans.lot_no"
bzw.
pfeedbacks.ord_no = Wtrans.ord_no
noch nicht vollständig.
Du solltest mal Deine Fremdschlüssel prüfen, ob da vielleicht noch eine Bedingung rein muß. Vielleicht ist ja in pfeedbacks auch noch eine "lot_no" drin, die dann auch noch mit ins join müßte.
Aber Wie schon gesagt, wenn Du keine Infos rausgibst, dann kann man Dir eben nicht helfen.
Gruß, Mad Max