Usando INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Usando LIKE:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Usando LIKE, com CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Lembre-se de que, em todas as opções, você provavelmente desejará direcionar os valores da coluna para maiúsculas ANTES de comparar para garantir que você obtenha correspondências sem se preocupar com a diferenciação de maiúsculas e minúsculas:
SELECT *
FROM (SELECT UPPER(a.column) 'ua'
TABLE a) a
JOIN (SELECT UPPER(b.column) 'ub'
TABLE b) b ON INSTR(b.ub, a.ua) > 0
O mais eficiente dependerá, em última análise, do plano EXPLAIN saída.
JOIN
cláusulas são idênticas a escrever WHERE
cláusulas. O JOIN
A sintaxe também é chamada de ANSI JOINs porque eles foram padronizados. JOINs não ANSI se parecem com:SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Não vou me preocupar com um exemplo de LEFT JOIN não ANSI. O benefício da sintaxe ANSI JOIN é que ela separa o que está unindo as tabelas do que realmente está acontecendo no
WHERE
cláusula.