ich hätte jetzt mal eine totale Anfängerfrage und zwar zum Inner Join.
Er wäre ja wie folgt:
SELECT tib~insobject lfa~mahns
FROM ( TIBAN as tib inner join lfa1 as lfa on lfa~vtref = tib~insobject )
INTO CORRESPONDING FIELDS OF TABLE gt_ausgabe.
So nun zur Frage: Mit diesem "ON" bestimmt man, genau die richtigen Einträge zu finden, oder? Würde man da bei Gelegenheit nicht am besten immer den gesamten Primärschlüssel (soweit in beiden übereinstimmend vorhanden) mitnehmen? oder wie handhabt ihr das?
da man bei einem Join inner/outer ja im Regelfall zwei unterschiedliche Tabellen verknüpft haben diese oft unterschiedliche Primärschlüssel, also kann man diesen gar nicht komplett übergeben.
Man gibt immer das mit um auf das gewünschte eindeutige Ergebnis zu kommen.
Z.B.
- MARA - MARC -> MATNR haben beide aber MARC hat noch WERKS.
- MARA - MVKE -> MATNR haben beide aber MVKE hat noch VKORG, VTWEG.
Wie RaCDigger geschrieben hat, durch die unterschiedlichen Schlüssel, macht es nur bedingt sinn.
Aber du hast insofern recht, dass man zumindest die gemeinsamen Schlüsselfelder immer angeben kann ( und vermutlich auch sollte, je nachdem wie genau du die Daten der jeweiligen Tabellen brauchst ).
Umso mehr Felder du in der ON-Bedingung eingibst, desto genauer und eingeschränkter wird deine Datenmenge aus dem Select.
Normalerweise gibt man hinter ON sämtliche Primärschlüsselfelder der zusätzlich rangebundenen Tabelle an (beim INNER und OUTER JOIN gleichermaßen). In seltenen Fällen kann es auch mal Sinn machen, den Primärschlüssel der angebundenen Tabelle nur unvollständig zu spezifizieren, allerdings muss man dann mit Kreuzprodukten rechnen:
SELECT Key1 Key2 Key3 FROM A JOIN B
ON A~Key1 = B~Key1
würde als Ergebnis bringen:
(1,2,4)
(1,2,5)
(1,3,4)
(1,3,5)
In diesem Beispiels würde man also zu jeder Zeile von A jede Zeile von B ausgegeben bekommen, was 2*2=4 Ergebnisse bedeutet. Meist ist sowas unerwünscht.
Vielleicht ist das eine Frage der Persönlichkeit: Ich war von Views noch nie sonderlich begeistert, allein schon deshalb, weil da die verwendeten Tabellen auf einem Tabreiter stehen, die Beziehungen dazwischen auf einem zweiten und die selektierten Felder auf einem dritten. Man sieht also immer nur ein Fragment des Ganzen, obwohl alles zusammenspielt. Bei einem SELECT mit JOIN habe ich alles übersichtlich beieinander; da kann ich mich viel besser orientieren.
Moin.
Es gibt einen gravierenden Unterschied zwischen Join und dem Database View.
Es ist im View möglich Key-Tabellenfelder unterschiedlicher Größe zu joinen.
Das geht z.B. im Quickviewer nicht.
Ein Beispiel :
Ein Join zwischen Tabelle NAST und VBAK mit NAST-OBJKY und VBAK-VBELN als Schlüssel.
Ansonsten ist das ge-joine für mich einfach nach Erfordernis.
gruß Jens
003.png
001.png
000.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
<:: XING-Gruppe Tricktresor::> Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.