Използване на INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Използване на LIKE:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Използване на LIKE, с CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Имайте предвид, че във всички опции вероятно ще искате да зададете стойностите на колоните в главни букви ПРЕДИ да ги сравните, за да сте сигурни, че получавате съвпадения, без да се притеснявате за чувствителността на главни и малки букви:
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
Най-ефективният ще зависи в крайна сметка от плана EXPLAIN изход.
JOIN
клаузите са идентични с писането на WHERE
клаузи. JOIN
синтаксисът се нарича още ANSI JOIN, тъй като са стандартизирани. Не-ANSI JOIN изглеждат така:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Няма да се занимавам с пример за Non-ANSI LEFT JOIN. Предимството на синтаксиса ANSI JOIN е, че разделя това, което свързва таблиците заедно от това, което всъщност се случва в WHERE
клауза.