Buenas Leo, gracias por contestar.
Te comento:
- Lo de unir tablas con JOIN: lo se, pero el tema de optimización de SQL (por ahora) es lo de menos. Sé que el IN es ineficiente y que las subquerys pueden causar mucho retardo en la consulta, pero esto es un tema que todavía no he abordado en mi proyecto (estoy pendiente de hacerlo)
- El like lo he dejado sin patrones porque he copiado el select que tenía con IN y lo he cambiado por LIKE, sin poner los patrones (en este caso iría con "%%")
Ahora, a ver si puedo explicar un poco mejor la finalidad de esta consulta (algo complicado cuando tienes política de privacidad en el proyecto... jeje)
Como puedes ver, ambas tablas tienen un campo común (un id numérico). La segunda tabla tiene un campo (id, numérico) que referencia una tercera tabla.
El campo "campo_busqueda" tiene una extensión de varchar, y puede estar repetido.
Código:
tabla1: t2_id, campo_busqueda
tabla2: t2_id, t3_id
tabla3: t3_id
Puede haber entradas en t1 sin referencia en t2, pero no puede ser viceversa (t2 es una tabla intermedia), lo mismo entre t3 y t2.
Entonces, lo que busco son registros de la tabla1 los cuales estén referenciados en tabla2 pero NO referencie a cierto registro de tabla3, y cuyo campo_busqueda sea similar a algún registro de tabla1 que esté referenciado en tabla1 Y exista cierto registro en la tabla3
Cuando digo "Cierto registro" me refiero a datos que variarán dependiendo del contexto (los # del mensaje anterior).
El tema del "length..." olvídalo, es otro filtro de selección que no viene al caso.
Espero poder haber sido más claro ahora...
De nuevo gracias por tu tiempo