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

[SOLUCIONADO] Consulta a tres tablas con LEFT JOIN

Estas en el tema de Consulta a tres tablas con LEFT JOIN en el foro de Mysql en Foros del Web. ¿Qu{e tal amigos? Tengo un pequeño problemilla que me ha estado hinchando las pelotas toooda la mañana... Verán, necesito mostrar un reporte donde se unan ...
  #1 (permalink)  
Antiguo 23/07/2013, 09:25
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 11 años, 4 meses
Puntos: 2
Pregunta Consulta a tres tablas con LEFT JOIN

¿Qu{e tal amigos?

Tengo un pequeño problemilla que me ha estado hinchando las pelotas toooda la mañana...

Verán, necesito mostrar un reporte donde se unan información de tres tablas...

Lo que intento hacer es un módulo de citas, y la parte que estoy programando es mostrarle al usuario cuales son las operaciones que tiene a la que aún no se le ha colocado una cita, no se si me di entender...

Hasta ahora la consulta que tengo es esta

Código SQL:
Ver original
  1. SELECT
  2. TA.tacemico_id, TA.ta_fecha_solicitud, TA.ta_rusad,
  3. TC.tcasos_id,  TC.tc_fecha_solicitud, TC.tc_rusad,
  4. TF.tfamiliar_id, TF.tf_fecha_solicitud, TF.tf_rusad
  5.  
  6.  
  7. FROM tramite_academico TA, tramite_casos_especiales TC, tramite_familiar TF, yamcalcitas
  8.  
  9. LEFT JOIN yamcalcitas  YCC ON TA.ta_rusad = YCC.yCitas_numero_solicitud  
  10. LEFT JOIN yamcalcitas  YC2 ON TC.tc_rusad = YC2.yCitas_numero_solicitud  
  11. LEFT JOIN yamcalcitas  YC3 ON TF.tf_rusad = YC3.yCitas_numero_solicitud

La cual me dispara el error:
Código:
#1054 - Unknown column 'TA.ta_rusad' in 'on clause'
¿Podrían ayudarme y decirme que demonios estoy haciendo mal amigos?

Se me pueden ayudar se los agradecere por siempre
  #2 (permalink)  
Antiguo 23/07/2013, 09:43
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 a tres tablas con LEFT JOIN

Cita:
¿Podrían ayudarme y decirme que demonios estoy haciendo mal amigos?
Bueno, según MySQL, tu tabla "tramite_academico" no tiene ninguna columna llamada "ta_rusad".
Yo te diría que verifiques dos cosas:
1) Si existe esa columna y cómo se denomina.
2) Si el servidor corre sobre Linux, que tengas en cuenta que en ese caso se diferencia entre mayusculas y minúsculas, por lo que si se llama "TA_RUSAD", lo tomará como diferente a "ta_rusad".
__________________
¿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 23/07/2013, 09:46
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Consulta a tres tablas con LEFT JOIN

Efectivamente la columna se llama "ta_rusad" todo en lowecase, lo he verificado varias veces, incluso, si elimino esa linea me salta que no existe "tc_rusad" y así sucesivamente...
  #4 (permalink)  
Antiguo 23/07/2013, 09:54
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Consulta a tres tablas con LEFT JOIN

Otra forma que habia pensado es no usar JOIN ya que en esas tres tablas tengo una columna que se llama "hasCita" que cuando no tiene cita pautada el tramite su valor es 0, entonces, como hago para mostrar los registros que tengan esa columna en 0?

Tengo esta consulta:

Código SQL:
Ver original
  1. SELECT
  2. TA.tacemico_id, TA.ta_fecha_solicitud, TA.ta_rusad, TA.ta_hasCita,
  3. TC.tcasos_id,  TC.tc_fecha_solicitud, TC.tc_rusad, TC.tc_hasCita,
  4. TF.tfamiliar_id, TF.tf_fecha_solicitud, TF.tf_rusad, TF.tf_hasCita
  5.  
  6.  
  7. FROM tramite_academico TA, tramite_casos_especiales TC, tramite_familiar TF
  8.  
  9. WHERE
  10. TA.ta_hasCita = '0' OR
  11. TC.tc_hasCita = '0' OR
  12. TF.tf_hasCita = '0'

Pero no me devuelve nada... Y ahi registros en existencia...

¿Que podra ser?
  #5 (permalink)  
Antiguo 23/07/2013, 09:59
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 a tres tablas con LEFT JOIN

Por lo que veo, estás entremezclando JOINs implícitos con explícitos, y eso puede tender a generar errores.
Sería mejor que reemplaces las comas por INNER JOIN con sus correspondientes ON, en lugar de hacer esa mezcla confusa.

Prueba eso, y avancemos desde allí.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/07/2013, 10:08
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Consulta a tres tablas con LEFT JOIN

Vaya, ahora si es verdad que no he entendido eso último que me has dicho :(
  #7 (permalink)  
Antiguo 23/07/2013, 10:21
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 a tres tablas con LEFT JOIN

La idea (haciendo algunas suposiciones) sería algo así:
Código MySQL:
Ver original
  1. SELECT TA.tacemico_id, TA.ta_fecha_solicitud, TA.ta_rusad, TC.tcasos_id,
  2.        TC.tc_fecha_solicitud, TC.tc_rusad, TF.tfamiliar_id,
  3.        TF.tf_fecha_solicitud, TF.tf_rusad
  4.   FROM tramite_academico TA INNER JOIN  tramite_casos_especiales TC ON ta.ta_hasCita = tc_hasCita
  5.        INNER JOIN tramite_familiar TF ON tc.tc_hasCita = tf.tf_hasCita
  6.        LEFT JOIN yamcalcitas Y YCC ON TA.ta_rusad = YCC.yCitas_numero_solicitud
  7.        LEFT JOIN yamcalcitas YC2 ON TC.tc_rusad = YC2.yCitas_numero_solicitud
  8.        LEFT JOIN yamcalcitas YC3 ON TF.tf_rusad = YC3.yCitas_numero_solicitud
De todos modos, por lo poco que se alcanza a entender, parece que tienes un diseño de datos algo defectuoso o ineficiente, o como mínimo ambiguo. No me queda clara la definición del esquema, por lo que no se termina de entender el conjunto de relaciones entre las tablas.
Y sin eso... es difícil saber si la consulta es correcta, o incluso si es posible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 23/07/2013, 13:50
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Consulta a tres tablas con LEFT JOIN

Nada, lo ultimo que pude hacer fue hacer tres bucles while que extrageran la información de las tres tablas mientras pienso en otra solución... Gracias por tu ayuda amigo.

Etiquetas: joins, left, reportes, 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 13:26.