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

Como puedo utilizar LEFT JOIN en esta consulta?

Estas en el tema de Como puedo utilizar LEFT JOIN en esta consulta? en el foro de Mysql en Foros del Web. Hola amigos tengo el siguiente lio, en un buscador sencillo, tengo la siguiente consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT TX.consulta , TX.pclave1 , ...
  #1 (permalink)  
Antiguo 28/05/2013, 15:28
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Como puedo utilizar LEFT JOIN en esta consulta?

Hola amigos tengo el siguiente lio, en un buscador sencillo, tengo la siguiente consulta:
Código MySQL:
Ver original
  1. SELECT TX.consulta, TX.pclave1, TX.como1, TY1.donde1 as base1, TX.pclave2, TX.como2,
  2. TY2.donde2 as base2, TX.pclave3, TX.como3, donde3, TY3.donde3 as base3, TX.pclave4,
  3. TX.como4, TY4.donde4 as base4, MATCH (TX.consulta, TX.pclave1, TX.pclave2, TX.pclave3,
  4. TX.pclave4)
  5. AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
  6. FROM referencia_extensa TX
  7. WHERE MATCH (TX.consulta, TX.pclave1, TX.pclave2, TX.pclave3, TX.pclave4) AGAINST ('$frase' IN BOOLEAN MODE)
  8. ORDER BY coincidencias DESC
Sólo que los valores donde1, donde2... etc, son valores numericos a cada numero corresponde un nombre de bases de datos diferentes por ejemplo 1 = ebsco, 2 = euromonitor, y esos nombres estan en otra tabla, sólo que no se como insertar el LEFT JOIN en esta consulta, tengo la idea de como hacerlo creo que es mas o menos con esta sintaxis :
Código MySQL:
Ver original
  1. LEFT JOIN bases_de_datos TY1 on TX.donde1 = TY1.id
  2. LEFT JOIN bases_de_datos TY2 on TX.donde2 = TY2.id
  3. LEFT JOIN bases_de_datos TY3 on TX.donde3 = TY3.id
  4. LEFT JOIN atendido_medio TW on TX.medio = TW.clave
  5. LEFT JOIN bibliotecario TZ on TX.bibliotecario_id = TZ.id
  6. LEFT JOIN list_tiempo TN on TX.tiempo = TN.id

Alguna idea de como podria insertar este LEFT JOIN a la consulta para que en el resultado imprima el nombre de la base d edatos que corresponde en vez del número? Saludos cordiales.
__________________
Bibliotecario pero morboso de las Tecnologías....

Última edición por gnzsoloyo; 28/05/2013 a las 19:25 Razón: Código de programacion no permitido en foros de BBDD y mal etiquetado.
  #2 (permalink)  
Antiguo 28/05/2013, 19:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como puedo utilizar LEFT JOIN en esta consulta?

Un LEFT JOIN de esas características te causará un serio problema de performance, porque tal y como lo quieres hacer generará un enorme producto cartesiano, a causa de esa estructura en estrella que planeas en la relación.
Francamente creo que hacer todo por separado y con UNION será una mejor opción...

El tema del producto cartesiano con los LEFT JOIN es algo que hemos tratado muchas veces en el foro.
__________________
¿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 28/05/2013, 19:53
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Como puedo utilizar LEFT JOIN en esta consulta?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Un LEFT JOIN de esas características te causará un serio problema de performance, porque tal y como lo quieres hacer generará un enorme producto cartesiano, a causa de esa estructura en estrella que planeas en la relación.
Francamente creo que hacer todo por separado y con UNION será una mejor opción...

El tema del producto cartesiano con los LEFT JOIN es algo que hemos tratado muchas veces en el foro.
Gracias por tu orientación amigo, se que es demasiado, pero como podras darte cuenta soy principiante en estas ondas, estuve revisando la sintaxis para UNION y ay varias formas cual es la que debería utilizar? y sería posible ayudarme a hacer el código?, espero puedar apoyarme, saludos cordiales.
__________________
Bibliotecario pero morboso de las Tecnologías....

Etiquetas: join
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 11:07.