MySQL - Ayuda con modelo de MySql.

 
Vista:
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 10/12/2022 23:01:10
Hola compañeros.
Necesito su ayuda para este problema de MySql.
Llevo bastantes días en ésto.
Necesito hacer una sola consulta para todas estas tablas y que me devuelva un solo resultado (registro).

Si alguien me pudiera ayudar, estaría muy agradecido, ya que puedo aprender para el futuro.

Adjunto el modelo de WorkBench.

Saludos y gracias.


modelo-asis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 2
Ha aumentado su posición en 10 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Kathyu (7 intervenciones) el 11/12/2022 10:14:23
Lo principal es saber que es lo que quiere extraer de la DB, no solo podemos asumir un registro, denos la lógica de la query y así se trabajaría

Que tiene hasta ahora??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 12/12/2022 19:18:46
Kathyu, muchas gracias por contestar.
Tienes razon, se me olvidó explicar esa parte.
Te cuento:
1. de cada persona, obtener la hora de entrada y salida (representados por las tablas de entradas y salidas)
2. luego, con el campo "IdEs" obtener el valor de la tabla "TipoEs", eso me dice si es "Entrada" o "Salida".
3. luego en qué punto o instalacion o local se hizo esa marca.

La idea es poder calcular las horas extras, según la hora de entrada y salida, pero eso lo necesito en un solo registro.

Hasta ahí.

He hecho otros sistemas, la diferencia es que han sido mas bien una consulta un solo camino.

Espero me puedan ayudar.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 12/12/2022 19:23:14
Kathyu, hasta ahora tengo eso:

[code]select * from asis_personas , asis_entradas , asis_salidas , asis_tipoes where
asis_personas.codpersona = 'glopez' and
asis_personas.codpersona = asis_entradas.codpersona and
asis_entradas.ides = asis_tipoes.idtipoes and
asis_salidas.ides = asis_tipoes.idtipoes ;/code]

no devuelve nada, pero saco la última linea devuelve un resultado solamente incluyendo las entradas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 12/12/2022 19:24:00
1
no devuelve nada, pero saco la última linea devuelve un resultado solamente incluyendo las entradas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 12/12/2022 19:25:14
1
2
3
4
5
select * from asis_personas , asis_entradas , asis_salidas , asis_tipoes where
asis_personas.codpersona = 'glopez' and
asis_personas.codpersona = asis_entradas.codpersona and
asis_entradas.ides = asis_tipoes.idtipoes and
asis_salidas.ides = asis_tipoes.idtipoes ;

ESTE ES EL MENSAJE CORRECTO!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 2
Ha aumentado su posición en 10 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Kathyu (7 intervenciones) el 13/12/2022 13:18:31
Y los join para enlazar las tablas??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 13/12/2022 23:50:45
si traté con inner join, y cuando llego al mismo punto de la linea 5 , es el mismo resultado: nada.

gracias Kathyu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 14/12/2022 01:14:32
mira, recien rehice la consulta con inner join:

1
2
3
4
5
select * from asis_personas inner join asis_entradas
on asis_personas.codpersona = asis_entradas.codpersona inner join asis_salidas
on asis_salidas.codpersona = asis_personas.codpersona inner join asis_tipoes
on asis_tipoes.idtipoes = asis_salidas.ides and
asis_tipoes.idtipoes = asis_entradas.ides;

haz la prueba quitando la última línea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 2
Ha aumentado su posición en 10 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Kathyu (7 intervenciones) el 14/12/2022 14:10:33
No puedo probar si no tengo la DB con datos.

Le diré que la query no es así, con SELECT * FROM debe extraer campo por campo y use un alias para que no se haga tanta bola. Puede también en cada línea poner una única condicional y recuerde los Join por lo general solo tienen un enlace, ese ultimo join entre T y S y T y E creo que no le va a funcionar. Si quiere un join entre T y E debe hacerlo con un nuevo alias T2 por ejemplo, aunque si todo esta relacionado T y E ya estarán unidos por los joins anteriores, no se si capta la idea...

Ejemplo:
1
2
3
4
5
6
7
8
9
SELECT P.nombre, E.hora, S.hora, T.tipo
FROM asis_personas P
INNER JOIN asis_entradas E ON P.codpersona = E.codpersona
INNER JOIN asis_salidas S ON S.codpersona = P.codpersona
INNER JOIN asis_tipoes T ON T.idtipoes = S.ides
AND T.idtipoes = E.ides; /* Esto creo que esta mal */
 
/* Posible resultado */
Juan Perez | 08:00 | 15:00 | Entrada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 17/12/2022 16:18:41
Hola Kathyu.
Gracias por responder.
Probé tu solución, pero efectivamente al incluir la ultima linea, tampoco devuelve resultados.
Voy a probar otra cosa.

Muchas gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 2
Ha aumentado su posición en 10 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Kathyu (7 intervenciones) el 18/12/2022 10:00:27
Si al final no le sale, me adjunta un BK de la DB con algunos datos y le ayudo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo
Val: 7
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Ayuda con modelo de MySql.

Publicado por Guillermo (20 intervenciones) el 20/12/2022 21:52:52
mira....

estube pensando.....

tal vez si hiciera dos consultas, dos caminos y luego con php rescatar los campos y presentar un solo registro (simulado)

puede funcionar, porque parece que matematicamente mi solución no tiene solución...jajaja

te agradezco mucho que te hayas tomado el tiempo para ayudarme a pensar un poco. ese tipo de cosas ya no se ven en la gente.

te mando saludos y besos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar