Använder INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Använder LIKE:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Använder LIKE, med CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Tänk på att du i alla alternativ antagligen vill flytta kolumnvärdena till versaler INNAN du jämför för att säkerställa att du får matchningar utan att bry dig om skiftlägeskänslighet:
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
Det mest effektiva kommer i slutändan att bero på FÖLLA planen utdata.
JOIN
satser är identiska med att skriva WHERE
klausuler. JOIN
syntax kallas också ANSI JOINs eftersom de var standardiserade. Icke-ANSI JOINs ser ut så här:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Jag tänker inte störa mig på ett icke-ANSI LEFT JOIN-exempel. Fördelen med ANSI JOIN-syntaxen är att den separerar det som sammanfogar tabeller från vad som faktiskt händer i WHERE
klausul.