INSTR gebruiken :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
LIKE gebruiken:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
LIKE gebruiken, met CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Houd er rekening mee dat u bij alle opties waarschijnlijk de kolomwaarden in hoofdletters wilt zetten VOORDAT u vergelijkt om er zeker van te zijn dat u overeenkomsten krijgt zonder dat u zich zorgen hoeft te maken over hoofdlettergevoeligheid:
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
De meest efficiënte zal uiteindelijk afhangen van het EXPLAIN plan uitvoer.
JOIN
clausules zijn identiek aan het schrijven van WHERE
clausules. De JOIN
syntaxis wordt ook wel ANSI JOINs genoemd omdat ze gestandaardiseerd waren. Niet-ANSI JOIN's zien er als volgt uit:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Ik ga me niet bezighouden met een voorbeeld van een niet-ANSI LEFT JOIN. Het voordeel van de ANSI JOIN-syntaxis is dat het scheidt wat tabellen samenvoegt van wat er feitelijk gebeurt in de WHERE
clausule.