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

Consulta con varias tablas no relacionadas

Estas en el tema de Consulta con varias tablas no relacionadas en el foro de Mysql en Foros del Web. Hola a todos. Tengo dos tablas para mi página web que no tiene nada que ver una con la otra: no tienen relación. Una supongamos ...
  #1 (permalink)  
Antiguo 13/06/2010, 03:20
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 18 años, 1 mes
Puntos: 4
Pregunta Consulta con varias tablas no relacionadas

Hola a todos.
Tengo dos tablas para mi página web que no tiene nada que ver una con la otra: no tienen relación. Una supongamos que es para los vídeos y otra para artículos.
Lo que quiero hacer es un buscador que me busque tanto en artículos como en vídeos.
Quiero hacer un LIKE del campo "titulo" y "contenido" de artículos, y, a su vez, también del campo "titulo" y "descripcion" de videos.

No se me ocurre cómo puedo hacer esto. ¿Qué haríais vosotros?
  #2 (permalink)  
Antiguo 13/06/2010, 07:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta con varias tablas no relacionadas

Resolverlo con programación a través de más de una consulta...

Si no tienen ninguna relación, ni tampoco se pueden crear relaciones, por más artificiales que sean, no hay modo de hacer la consulta en una sola sin, por lo menos, crear un producto cartesiano... Lo que tendría resultados catastróficos en performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/06/2010, 10:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 18 años, 1 mes
Puntos: 4
Respuesta: Consulta con varias tablas no relacionadas

Estoy con UNION ALL:

Consulta tabla1
UNION ALL
Consulta tabla2

Parece que funciona.
  #4 (permalink)  
Antiguo 13/06/2010, 11:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta con varias tablas no relacionadas

Con UNION lo que haces es un encadenamiento de resultados de N selects, invocando siempre la misma cantidad de campos del mismo tipo de dato para realizar la consulta.
Puede resultar práctico, pese a lo poco ortodoxo.
Lo que puede darse es que el resultado no tenga una buena lógica, si los campos encolumnaos no tienen un dominio coherente.

Pero eso lo tendrás que evaluar tu mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 13/06/2010, 14:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 18 años, 1 mes
Puntos: 4
Respuesta: Consulta con varias tablas no relacionadas

Gracias por la explicación gnzsoloyo.
¿Entonces, tú qué propones?
  #6 (permalink)  
Antiguo 13/06/2010, 15:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta con varias tablas no relacionadas

Compara la performance de hacer la consulta que tu usas contra lo que sería hacerlas por separado.
Algunos defectos de optimización sólo se notan cuando las tablas ya tienen cargados decenas de miles de registros...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 16/06/2010, 03:43
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 18 años, 1 mes
Puntos: 4
Respuesta: Consulta con varias tablas no relacionadas

¿Entonces quieres decir que la única forma de hacerlo todo en una consulta es con UNION ALL?

Etiquetas: consulta, tablas
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 08:54.