2016-02-25 90 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