Sequel Pro verwenden, ich habe diese beiden Tabellen:"Like" Operator in INNER JOIN in SQL
Table1
Name Year x y
John Smith 2010 10 12
Adam Jones 2010 8 13
John Smith 2011 7 15
Adam Jones 2011 9 14
etc.
und
Table2
Name Year z
Smith John Smith John 2010 27
Jones Adam Jones Adam 2010 25
Smith John Smith John 2011 29
Jones Adam Jones Adam 2011 21
etc.
Grundsätzlich sind die Namen in Tabelle 2 das gleiche nur mit dem letzten Name und Vorname vertauscht, dann einmal wiederholt. Die Namen in Tabelle 1 sind also in den Namen von Tabelle 2 zu finden ("John Smith" ist in "Smith John Smith John" zu finden). Ich möchte eine innere Verknüpfung und verbinden Sie den z-Wert von Table2 zu den anderen Werten von Tabelle 1 durchzuführen und so etwas wie diese:
Name x y z
John Smith 10 12 27
Adam Jones 8 13 25
So zu tun, dass ich diese Abfrage ausgeführt:
Select Table1.*, Table2.z
From Table1
Inner join Table2
On Table1.Name like "%Table2.Name%" and Table1.Year=Table2.Year
Aber ich habe dies als die Ausgabe:
Name Year x y z
Und das ist es. Ich habe die Überschriften, aber keine Zeilen. Ich weiß nicht, was ich falsch mache ... Ich vermute, es hat wahrscheinlich damit zu tun, wie ich den gleichen Operator benutze, aber ich weiß es nicht. Jede Hilfe würde sehr geschätzt werden.
Ja, das hat funktioniert. Vielen Dank! – japem
TIL; CONCAT kam mit Sql Server 2012 und 2008 R2 hat es nicht. –
Um den Kommentar von Ege zu erweitern, musste ich Folgendes für eine ältere Version von SQL verwenden: ON table2.name LIKE ('%' + table1.name + '%') – Hagelt18