Check for similar value with SQL
Your question is not very clear... but, the way I understand it is:

Collect all the unique values in t1, and count how many of those unique values appear in t2.

Interesting problem.... instead of a straight join with all the or conditions, which may lead to an internal cross-product (thousands of joins and results to run comparisons on), I would state the logic as a couple of subselects ... which represent the two sets of data... the unique values in t1, and the unique values in t2.

Note, the 'union' operator does a distinct as part of the union....

select count(*)
from
  (
      select c1 as val from t1
    union
      select c2 as val from t1
    union
      select c3 as val from t1
  ) as t1vals,
  (
      select c1 as val from t2
    union
      select c2 as val from t2
    union
      select c3 as val from t2
  ) as t2vals
where t1vals.val = t2vals.val


The code looks nicer this way, but requires scanning each table three times (which I think will be better than the potentially thousands of times it may have to happen with your query......

I have put together an sqlfiddle for this