Надеюсь, у вас больше столбцов, чем только name
в таблицах! Вам нужно будет присоединиться к таблицам, и из-за этого им нужно будет иметь столбец с одинаковым значением. Что-то вроде этого:
table1
------
PK Name
-- ----------------
1 Frank Wisely
2 Albert Smith
3 Tony Gonzalez
4 Peter Nicholas
5 Andrew Wonder
6 Adams Tony
table2
------
PK Name
-- ----------------
2 Smith
5 Wonder
6 Tony
вот как присоединиться к ним:
select
a.*
FROM Table2 b
inner join Table1 a ON a.pk=b.pk
, если у вас нет столбца типа PK, чтобы присоединиться, вы можете попытаться присоединиться на подстроки, но вы больше всего вероятно, получат ошибки в ваших результатах из-за ложных совпадений. Когда ваши образцы данных имеют 6 рядов, все выглядит нормально, но что происходит, когда у вас есть джон-кузнец, кузнец, майк-кузнец, джон-коричневый и майк-коричневый? как вы находите Джона? Вы можете присоединиться к таблице с помощью LIKE, это кажется странным для этого.
этот запрос будет делать то, что вы просите:
select
a.*
FROM Table2 b
inner join Table1 a ON a.Name like '%'+b.Name+'%'
рабочий пример:
create table Table1 (name varchar(100), junk varchar(5))
insert into Table1 values ('Frank Wisely','aaa')
insert into Table1 values ('Albert Smith','bbb')
insert into Table1 values ('Tony Gonzalez','ccc')
insert into Table1 values ('Peter Nicholas','ddd')
insert into Table1 values ('Andrew Wonder','eee')
insert into Table1 values ('Adams Tony','fff')
Create table Table2 (name varchar(100))
insert into Table2 VALUES ('Tony')
insert into Table2 VALUES ('Smith')
insert into Table2 VALUES ('Wonder')
select
a.*
FROM Table2 b
inner join Table1 a ON a.Name like '%'+b.Name+'%'
ВЫВОД:
name junk
---------------- -----
Albert Smith bbb
Tony Gonzalez ccc
Andrew Wonder eee
Adams Tony fff
(4 row(s) affected)
спасибо. '%' + b.Name + '%' было тем, что я искал. Большой!!! –
@ Тони Ким, если этот ответ решил ваш вопрос, вы должны нажать на галочку в левой верхней части. Это будет означать, что это ваш правильный ответ. –