MySQL - Combinar dos tablas mysql mediante un max()

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Combinar dos tablas mysql mediante un max()

Publicado por Hector (2 intervenciones) el 02/06/2019 20:11:43
Bueno, les cuento mi problema.

Tengo que combinar dos tablas distintas, obteniendo los campos asociados al max(id) de una de esas dos tablas.
La primera tabla almacena los datos de una practica concreta:

tabla: practica
idpractica, numero y detalle. (son cinco registros en total)

La otra tabla, almacena los distintos valores precios para cada practica según la fecha. Con lo cual, hay varios valores distintos para cada practica. Los campos serian estos:
tabla: planilla
idplanilla, idpractica, valor, fecha.

La consulta en principio seria esta:

select practica.*, planilla.idplanilla, planilla.valor
from practica
inner join planilla on practica.idpractica = planilla.idpractica
where planilla.idplanilla = max(planilla.idplanilla)

Ya se que la sintaxis de el WHERE está mal, pero lo pongo así para que entiendan mi idea.

Probé con varias formas, pero en el mejor de los casos, lo que consegui fue que el resultado muestre solo un registro. Y necesito que se me muestre el ultimo valor cargado (max(planilla.idplanilla)) para cada numero de practica.

Espero logren entenderme.
Desde ya gracias.
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
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Combinar dos tablas mysql mediante un max()

Publicado por Hector (2 intervenciones) el 04/06/2019 03:22:51
Bueno, ya esta resuelto muchachos.
Por si a alguien le sirve el dato, les comento que la solución pasa por filtrar el max(id) en las condiciones del INNER JOIN. Ahi les paso el codigo ejemplo.

1
2
3
4
5
SELECT practica.*, planilla.valor AS valor
FROM practica
INNER JOIN planilla ON practica.idpractica = planilla.idpractica
	AND planilla.idplanilla = (select max(planilla.idplanilla) from planilla where practica.idpractica = planilla.idpractica)
WHERE.....

Espero le sirva a alguien!
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar