Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/07/2012, 08:21
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: like con subquery

Hola DoHITB:

Es conveniente que nos digas primeramente qué es lo que quieres hacer... de entrada no le encuentro mucha lógica a tu consulta... es la primera vez que veo que alguien intenta hacer un like sobre una subconsulta, pero no logro descubrir qué es lo que pretendes. Te recomiendo que comiences por decirnos cuál es la estructura de tus tablas y que nos pongas algunos datos de ejemplo... a partir de estos datos dinos qué es lo que quiere obtener como salida. De esta manera es más fácil que podamos indicarte una solución alternativa.

Sin embargo, tengo que hacer algunas observaciones con respecto a la consulta por el tipo de elementos que estás utilizando.

Primero, no utilices comas para listar tablas, ni hagas las uniones en el WHERE... en lugar de esto utiliza JOIN's (INNER, LEFT o RIGTH según sea el caso)

Código:
En lugar de esto:
FROM Tabla1, Tabla2 WHERE Tabla1.Campo = Tabla2.Campo

Haz esto:
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo
Segundo: las condiciones LIKE debes utilizarlas siempre para la búsqueda de patrones y para esto deberías utilizar los comodines (%, _, [])... Tal como estás poniendo tus consultas realmente no le sacas provecho al LIKE.

Tercero, las condiciones tipo IN son bastante ineficientes... trata en la medida de lo posible de evitarlas. En su defecto utiliza JOIN's.

Cuarto, el uso de subconsultas puede traer como consecuencia que tu consulta final sea también muy ineficiente, hay que tratar de evitarlas en la medida de lo posible. Además, en en este caso las subconsultas las estás haciendo sobre las mismas tablas que tienes en el FROM, cosa que no tiene mucho sentido. Sin embargo, como te comenté en un principio, sin datos de ejemplo de tus tablas resulta muy complicado tratar de hacerte una propuesta mejor que cumpla con los criterios que quieres incorporar a la consulta, así es que explícate un poco mejor y con gusto tratamos de ayudarte.

Saludos
Leo.