Brug af INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Bruger LIKE:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Bruger LIKE, med CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Vær opmærksom på, at du i alle muligheder sandsynligvis vil flytte kolonneværdierne til store bogstaver, FØR du sammenligner for at sikre, at du får matches uden bekymring for følsomhed over for store og små bogstaver:
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
Den mest effektive vil i sidste ende afhænge af EXPLAIN planen output.
JOIN
klausuler er identiske med at skrive WHERE
klausuler. JOIN
syntaks omtales også som ANSI JOINs, fordi de var standardiserede. Ikke-ANSI JOINs ser ud som:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Jeg har ikke tænkt mig at bøvle med et ikke-ANSI LEFT JOIN eksempel. Fordelen ved ANSI JOIN-syntaksen er, at den adskiller det, der forbinder tabeller fra det, der faktisk sker i WHERE
klausul.