Heyo,
mal ne vieleicht etwas bescheuerte Frage, aber wenn ich in einem SQL Statement mit JOIN arbeite sollte man Daten anhand von Literalen in der JOIN ON Bedingung ausschließen oder eher anhand der WHERE?
Als Beispiel jetzt mal ganz simpel gestaltet das Auslesen der Materialnummer und des Materialtextes aus MARA und MAKT
Code: Alles auswählen.
select
mara~matnr,
makt~maktx
from
mara as mara
join
makt as makt
on
mara~matnr = makt~matnr
where
spras = 'D'
into table
@data(mara_daten_where).
select
mara~matnr,
makt~maktx
from
mara as mara
join
makt as makt
on
mara~matnr = makt~matnr
and
spras = 'D'
into table
@data(mara_daten_from).
Gibt es dazu ein Best Practice? Oder etwas was gegen die Verwendung der Datenexklusion in der ON Bedingung spricht?
Wenn ich zwei Tabellen anhand von Tabellenfelder zusammen hänge dann ist es ja üblich das mit ON a~feld = b~feld zu machen, der Compiler meckert zumindest nicht wenn ich das mit Literalen mache.
edit: Also hat das Verwenden von Literalen mit ON irgendwelche Performancenachteile gegenüber der Verwendung in WHERE?
Mir geht es aktuell kokret um ein JOIN zwischen MARA, MAKT, EINE und EINA wo ich nur die deutschen Texte mit einer bestimmen Einkäufer Gruppe haben will.
VG radinator