Ms Access Sql内部联接两列的部分匹配

Ms Access Sql内部联接两列的部分匹配,sql,ms-access,Sql,Ms Access,我有两个表,每个表有一列,table.column中名为copy2.col2的字符串只有table copy1.col1的一些中间文本 这是我的sql:…它不检索任何匹配项,但至少也没有语法错误 SELECT copy1.col1, copy2.col2 FROM copy1 INNER JOIN copy2 ON copy1.col1 ="*"&copy2.col2&"*"; 问题是-怎么了-它没有检索任何记录? 我在两列中都有部分字符串,这样我至少知道它正在工作(以防我得到

我有两个表,每个表有一列,table.column中名为copy2.col2的字符串只有table copy1.col1的一些中间文本

这是我的sql:…它不检索任何匹配项,但至少也没有语法错误

SELECT copy1.col1, copy2.col2
FROM copy1 INNER JOIN copy2 ON copy1.col1 ="*"&copy2.col2&"*";
问题是-怎么了-它没有检索任何记录? 我在两列中都有部分字符串,这样我至少知道它正在工作(以防我得到反向连接)


提前感谢-Ken

编写此类查询的常用方法是使用sql
LIKE
关键字和sql多字符通配符:
%
。试试这个:

SELECT copy1.col1, copy2.col2
FROM copy1 INNER JOIN copy2
ON copy1.col1 LIKE '%' & copy2.col2 & '%';

但是不要期望有很好的性能,因为这种类型的查询不能使用索引,因此会进行完整的表扫描。

星号(*)的作用是什么?您是否试图说copy1.col1在查询中包含cop2.col2?上面的文本粘贴不正确。以下是我尝试粘贴的内容:在copy1.col1=“©2.col2&”上从copy1内部连接copy2中选择copy1.col1、copy2.col2;星星应该是通配符基本上,我对MS Access了解一点,我经常使用它,但我不是很擅长。我有两列数据。一列有原始的型号,另一列有相同的型号,但在两端添加了一些额外的文本,我正在尝试将它们匹配在一起。它不一定是这个特定的查询,但不知何故,我必须让这两列匹配起来。感谢根据您运行查询的位置和方式,您可能需要将copy1.col1上的“*”©2.col2&“*”通配符替换为
%
:谢谢。通配符起作用,它只是将col1和col2返回为空或不匹配。如果我消除了通配符,只需输入copy2.col2;我得到了所有的精确匹配(表中有一些精确匹配)-没问题,但我不能让部分匹配的东西工作。谢谢