I Tabellen zu verknüpfen versuchen, wo die nur zwei Tasten sind, das Spiel table1.Account
und table2.key
Joining 2 SQL-Tabellen basiert auf Teilzeichenfolge
Aber das Problem ist, das Setup. Das table1.Account
Feld hat 10 Stellen und nur die mittleren 4 oder 5 Ziffern mit dem table2.key
eg : 1234xxxx10 - > table1.Account matches with xxxx -> table2.key
or 123xxxxx10 - > table1.Account matches with xxxxx -> table2.key
ich dieses Stück Code JOIN INNER geschrieben haben, passen aber die Abfrage läuft weiter und gibt mir nicht wieder etwas .
SELECT DISTINCT column1, column2
from table1 INNER JOIN table2 ON table1.Account like '%'+table2.key+'%'
order by column1
Wenn Sie das "distinct" entfernen, sollten Sie einige Ergebnisse schneller erhalten. Und woher weißt du, ob die mittleren 4 oder 5 übereinstimmen? –
vielleicht mit left() wäre schneller als wie – jpprade
So müssen Sie mit einem sehr schlechten Datenbank-Design zu tun haben. Am besten wäre es, sie so zu ändern, dass getrennte Informationen in separaten Spalten stehen. Wenn Sie dies jedoch nur mit einer Abfrage lösen müssen, müssen Sie zuerst die Regel deklarieren, nach der Sie den betreffenden Teilstring finden. Sind es immer die vier oder fünf Zeichen vor den letzten zwei in der Zeichenfolge? Was ist, wenn beide Datensätze mit vier und fünf weiteren übereinstimmen? Bilden Sie diese Regel und denken Sie erst dann darüber nach, wie Sie die Abfrage schreiben. –