我希望您的列不仅仅是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 行时看起来都很好,但是当您有 john smith、bill smith、mike smith、john brown 和 mike brown 时会发生什么?你怎么找到约翰?您可以使用 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)