2012-09-26 198 views
3

之間串數據我有兩個表表1列比較兩個表

ID Text   email ID 
============================ 
1 This is Test [email protected]  
2 Make my day [email protected] 

表2與一列

words(column) 
=============  
Test  
trip  
day 

現在笏我想要做的是比較文本(每單詞)從Table 1TABLE 2中的每個行流單詞,如果找到,則該id應記錄在不同的表上。

示例:如果來自TABLE1TestTABLE 2字列中的行值。所以它應該在另一個表中記錄ID =1

也一旦找到這個詞,它不應該進一步迭代。

回答

3

試試這個:

select * 
from TABLE1 
join 
TABLE2 
on ' '+Text+' ' like '% '+words+' %' 


SQL fiddle demo

+0

謝謝...但我沒有得到任何結果...只是想知道怎麼做這個聲明的工作... –

+0

@tulajaramkulkarni:請參閱演示,我已經包含在答案中(我已經使用了concat函數,因爲它的mysql引擎爲sql fiddel) –

+0

謝謝,你的演示很清晰並且解釋了所有內容......但是我很驚訝wat我錯過了,我我正在使用相同的查詢y ... –

1

您可以使用CHARINDEX功能:

select * 
from TABLE1 t1 
where exists 
(
    select 1 
    from TABLE2 t2 
    where CHARINDEX(t2.words,t1.text)>0 
) 

Link到文檔。

3

這工作

SELECT t1.*,t2.words 
FROM Table1 t1 
JOIN Table2 t2 
ON PATINDEX('%' + t2.words + '%',t1.text)>0 

輸出

ID Text   email_ID words 
1 This is Test [email protected] Test 
2 Make my day  [email protected] day