Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Intersectar varias consultas

Estas en el tema de Intersectar varias consultas en el foro de Mysql en Foros del Web. Hola, ya no me quedan pelos en la cabeza de los que tirarme, asi que haber si alguno me podeis dar una idea. Tengo varias ...
  #1 (permalink)  
Antiguo 13/12/2008, 10:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Intersectar varias consultas

Hola, ya no me quedan pelos en la cabeza de los que tirarme, asi que haber si alguno me podeis dar una idea.
Tengo varias sentencias de este tipo, aqui os muestro 2 ejemplos:
Código:
SELECT * FROM empleados WHERE nombre LIKE "%ca%" OR apellido LIKE "%ca%" UNION 
SELECT * FROM empleados WHERE profesion = ANY
(SELECT id FROM ocupaciones WHERE trabajo LIKE "%ca%" OR segundotrabajo LIKE "%ca%")
Código:
SELECT * FROM empleados WHERE religion = ANY
(SELECT id FROM religiones WHERE nombre LIKE "%cristiano%")
El primer ejemplo hace 2 busquedas (una simple y otra anidada) y une los resultados, mientras que el segundo ejemplo realiza una unica busqueda anidada.
Aqui es donde viene mi gran duda... ¿como puedo encontrar la interseccion de resultados de estos dos tipos de busquedas?. Se hacerlo con consultas simples con inner join, pero no encuentro la manera al ser las dos consultas muy complicadas (y ese UNION por enmedio tampoco ayuda).
Cualquier idea me vale... ya no se me ocurre nada mas que probar.
Muchas gracias desde ya.
  #2 (permalink)  
Antiguo 13/12/2008, 12:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Intersectar varias consultas

Mmm a lo mejor crea una tabla temporal donde insertes esos resultados y luego haces la intersección

También puedes hacer subconsultas aunque estas van a tardar más en procesar.

Saludos.
  #3 (permalink)  
Antiguo 13/12/2008, 22:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Intersectar varias consultas

Voy a ver si mediante tablas temporales le puedo sacar punta,... aunque me da que aunque lo consiga no me va a valer de mucho, ya que seguro que va a ser muy lento.

Muchas gracias por la idea GatorV!!!.
  #4 (permalink)  
Antiguo 14/12/2008, 00:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Intersectar varias consultas

Pues si creas una tabla temporal del tipo Memory, yo creo que te basta para algo así aunque siempre es complicado cuando son consultas tan complejas.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.