hab ein kleines Problem mit einem Join bei einer SQL Abfrage.
Normalerweise wird sieht ja ein Join so aus:
Select * from TABLE1 INNER JOIN TABLE2 on TABLE1.field1 = TABLE2.field1 and TABLE1.field3 = TABLE2.field3 .
Soweit, so gut. Wenn in TABLE1.field1 "a" steht und in TABLE1.field3 "b", dann werden alle Sätze der anderen Tabelle gejoined, bei denen TABLE2.field1 "a" ist und TABLE2.field3 "b".
Was ist nun, wenn es einen Sonderfall geben würde, bei dem TABLE1.field1 "y" ist, aber dieses "y" immer mit TABLE2.field1 "z" gejoined werden soll? Geht das?
Ich versuch mal es mit einem Beispiel darzustellen:
Tabelle 1
Feld1 - - - - - - - - - - - - - - - Feld2
801 - - - - - - - - - - - - - - - - 100001
801 - - - - - - - - - - - - - - - - 100002
801 - - - - - - - - - - - - - - - - 100003
850 - - - - - - - - - - - - - - - - 100001
850 - - - - - - - - - - - - - - - - 100002
850 - - - - - - - - - - - - - - - - 100003
302 - - - - - - - - - - - - - - - - 100001
302 - - - - - - - - - - - - - - - - 100002
302 - - - - - - - - - - - - - - - - 100003
Tabelle 2
Feld1 - - - - - - - - - - - - - - - Feld2
801 - - - - - - - - - - - - - - - - 100001
801 - - - - - - - - - - - - - - - - 100002
801 - - - - - - - - - - - - - - - - 100003
850 - - - - - - - - - - - - - - - - 100001
850 - - - - - - - - - - - - - - - - 100002
850 - - - - - - - - - - - - - - - - 100003
301 - - - - - - - - - - - - - - - - 100001
301 - - - - - - - - - - - - - - - - 100002
301 - - - - - - - - - - - - - - - - 100003
Nun möchte ich, dass alles aus Tabelle 1 über beide Felder mit Tabelle 2 gejoined wird. Ausnahme ist "302" aus Tabelle 1 Feld 1, dass mit Tabelle 2 Feld 2 "301" und Feld 2 gejoined werden soll.
Wenn also alles so gejoined ist wie ich mir das vorgestellt habe, müsste das Ergebnis so aussehen:
Tabelle1.Feld1-------Tabelle1.Feld2-------Tabelle2.Feld1-------Tabelle2.Feld2
302--------------------100001----------------301---------------------100001
302--------------------100002----------------301---------------------100002
302--------------------100003----------------301---------------------100003
Ich hoffe jemand konnte mein Problem verstehen und hat hoffentlich eine Lösung hierfür.
Comment