2016-02-25 28 views
1

的部分匹配我有每一个列两个表,并在TABLE.COLUMN命名copy2.col2琴弦只有一些表copy1.col1中间文本女士访问SQL内加入两列

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

SELECT copy1.col1, copy2.col2 
FROM copy1 INNER JOIN copy2 ON copy1.col1 ="*"&copy2.col2&"*"; 

问题是 - 怎么了 - 它不检索任何记录? 我有两列部分字符串,这样我至少知道它的工作(如果我得到了加入向后)

在此先感谢 - 肯

+0

星星(*)是什么?你想在你的查询中说copy1.col1包含cop2.col2吗? –

+0

上面的文本没有正确粘贴。这里是我试图粘贴:SELECT copy1.col1,copy2.col2 FROM copy1 INNER JOIN copy2 ON copy1.col1 =“*”&copy2.col2 &"*"; – kdm

+0

星星应该是通配符 – kdm

回答

2

通常的方式做到写这种类型的查询是使用sql LIKE关键字与sql多字符通配符:%。试试这个:

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

但是,不要指望伟大的表现,因为这种类型的查询不能使用索引,因此将做一个全表扫描。

+0

基本上,我知道一些关于MS Access和我使用它很多,但我不是很擅长。我有两列数据。一列有原始型号,另一列有相同的型号,但一些额外的文本添加到两端,我试图将它们匹配在一起。它不一定是这个特定的查询,但不知怎的,我得把这两列匹配起来。谢谢 – kdm

+0

根据您在哪里以及如何运行查询,您可能需要用'*'替换'%'通配符:'ON copy1.col1 LIKE'*'&copy2.col2&'*'' – HansUp

+0

谢谢。通配符工作,它只是返回col1和col2为空或不匹配。如果我消除通配符并输入LIKE copy2.col2;我得到了所有完全匹配的结果(表格中有一些完全匹配) - 没有问题,但我无法获得部分匹配的工作。谢谢 – kdm