Ich bin ganz neu in SQL und ich versuche, zwei Tabellen zu verknüpfen,Joining 2 Tische mit begrenzten Verbindungsbedingungen
Tabelle A:
ID Amount Bank
123 50 Barclays
123 50 tesco
123 50 HSBC
123 100 LLyods
123 200 MBNA
Tabelle B:
ID Amount Bank
123 50 aa
123 50 bb
123 50 cc
123 100 dd
123 200 ee
Beachten Sie: In Tabelle B ist der Bankname der gleiche wie Tabelle A, aber es ist in einem anderen Format geschrieben, so dass ich nicht auf t beitreten kann seine.
das Skript bei mir läuft ist:
Select A.*, B.*
FROM TableA A
Left Join TableB B
on A.ID = B.ID AND A.AMOUNT = B.AMOUNT
;
Das Ergebnis i erhalten,
ID Amount Bank ID AMOUNT BANK
123 50 Barclays 123 50 aa
123 50 Barclays 123 50 bb
123 50 Barclays 123 50 cc
123 50 tesco 123 50 aa
123 50 tesco 123 50 bb
123 50 tesco 123 50 cc
123 50 HSBC 123 50 aa
123 50 HSBC 123 50 bb
123 50 HSBC 123 50 cc
123 100 LLyods 123 100 dd
123 200 MBNA 123 200 ee
, was ich will, ist zu bekommen,
ID Amount Bank ID AMOUNT BANK
123 50 Barclays 123 50 aa
123 50 tesco 123 50 bb
123 50 HSBC 123 50 cc
123 100 LLyods 123 100 dd
123 200 MBNA 123 200 ee
ich das Problem ist, dass es jede Zeile der Tabelle A mit den Zeilen der Tabelle B verbindet, die die Join-Bedingungen erfüllen; Leider hat die Tabelle B keine anderen eindeutigen Werte, die ich als Join-Bedingung verwenden kann.
Kann die Gemeinde bitte sehen, wenn Sie an etwas denken können, würde ich es sehr schätzen. Danke :)
teradata oder SQL Server? – GurV
Sie erstellen eine Viele-zu-Viele-Beziehung mit diesem Join. Gibt es eine Möglichkeit, die Bankspalte in Tabelle A mit der Bankspalte in Tabelle B in Beziehung zu setzen. Erstellen Sie möglicherweise eine Spalte in Tabelle A, die diese Symbole in Tabelle B enthält? –
Teradata; @hollow_Victory Dies ist ein kleines Beispielbeispiel; Die Bankspalte hat 200 verschiedene Werte und ich kann sie nicht mit dem –