2016-09-08 2 views
0

Ich habe zwei Tabellen, die ich aufSQL: Where-Klausel Spiel Vollständiger Name mit First & Namen VZ

"Fullname" 

gegen

"FirstName" & "LastName" 

und extrahieren Sie den Benutzer-ID aus dem "Vornamen" passen müssen/"Nachname" Tabelle. Wenn es ein Spiel der Benutzer-ID abrufen, wenn nicht gerade Null

Beispiel: Tabelle 1 (mit Fullname)

|Sam Smith| 

Muss mit Table2 (mit Vor- und Nachnamen) entsprechen

| Sam | Smith | 

Und ich möchte berücksichtigen, wenn eine Person drei Namen hat. (Vollständiger Name)

|Sam Samual Smith| 

vs. (Erster & Nachname)

|Sam Samual | Smith | 

Jede Hilfe benötigt wird, nicht sicher, wie um ihn herum zu gehen,

+2

Ist das nicht so einfach wie 'WHERE t1.Fullname = t2.Firstname + '' + t2.Lastname'? (wahrscheinlich nicht sehr gut mit Indizes ausführen) –

Antwort

0

wie diese versucht,

SELECT * 
FROM Table1 T1 
INNER JOIN Table2 T2 ON T1.FullName = T2.FirstName + ' ' + T2.LastName 
1

Als Lasse V. Karlsen vorgeschlagen,

Ersetzen Sie die Tabellennamen durch Ihre Tabellennamen und fügen Sie die gewünschten Felder in die Auswahlabfrage ein, da die Auswahl aller Felder die Leistung beeinträchtigen kann.

+0

Danke, das funktioniert gut. Allerdings habe ich immer noch die Frage, wann ich Namen habe wie: | Martin Christian | Smith | (Vorname und Nachname) und die Personen fullname in der anderen Tabelle ist | Martin Smith | und da ich den "Christian" im Vollnamen nicht habe, werde ich kein Match erhalten. – user3052850

+0

Das wird die Abfrage wirklich langsam machen, weil Sie nun auf beiden Feldern ein 'LIKE' machen müssen. Ich würde vorschlagen, dass Sie diesen komplexen Abgleich * einmal * durchführen und die Ergebnisse speichern. –

+1

Sie haben auch nicht erwähnt, dass Sie diese Art von Vergleich in Ihrer Frage machen müssten. Bitte posten Sie vollständige Fragen. Sie erwähnen, dass Sie sich mit den zweiten Vornamen am Ende beschäftigen müssen, aber geben Sie ein Beispiel, in dem beide Tabellen den zweiten Vornamen enthalten. Dein neues Problem ist anders. Bitte aktualisieren Sie Ihre Frage entsprechend. –

Verwandte Themen