Two queries that should get you the results if I understood correctly what
is needed:
SELECT T1.col_substring,
T2.col_substring
FROM T1
JOIN T2
ON T1.x = T2.x
WHERE EXISTS
(SELECT *
FROM B
WHERE B.col_string LIKE '%' + T1.col_substring + '%'
AND B.col_string NOT LIKE '%' + T2.col_substring + '%')
OR EXISTS
(SELECT *
FROM B
WHERE B.col_string NOT LIKE '%' + T1.col_substring + '%'
AND B.col_string LIKE '%' + T2.col_substring + '%')
SELECT T1.col_substring,
T2.col_substring,
B1.col_string,
B2.col_string
FROM T1
JOIN T2
ON T1.x = T2.x
LEFT OUTER JOIN B AS B1
ON B1.col_string LIKE '%' + T1.col_substring + '%'
AND B1.col_string NOT LIKE '%' + T2.col_substring + '%'
LEFT OUTER JOIN B AS B2
ON B2.col_string NOT LIKE '%' + T1.col_substring + '%'
AND B2.col_string LIKE '%' + T2.col_substring + '%'
WHERE B1.col_string IS NOT NULL
OR B2.col_string IS NOT NULL
HTH,
Plamen Ratchev
http://www.SQLStudio.com