SQL - ¿Puedo hacer esto en una sola SELECT?

 
Vista:

¿Puedo hacer esto en una sola SELECT?

Publicado por Iñaki (2 intervenciones) el 05/07/2017 23:28:24
Hola a todos,
Me gustaría saber si puedo hacer lo siguiente en una única consulta SELECT:
Supongamos que tengo una tabla PERSONAS con dos campos, ID y NOMBRE.
Por otro lado tengo la tabla DIRECCIONES con los campo ID, ID_PERSONA y DIRECCION.
La relación es PERSONAS.ID = DIRECCIONES.ID_PERSONA.
La tabla DIRECCIONES es un histórico de direcciones de cada persona. El máximo ID de DIRECCIONES por cada ID_PERSONA corresponde a la dirección vigente.
¿Cómo puedo obtener en una consulta el nombre de la persona y la dirección actual (MAX(DIRECCIONES.ID))?
He intentado simplificar el problema con este ejemplo. Espero que se entienda.
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

Resuelto

Publicado por Iñaki (2 intervenciones) el 06/07/2017 00:05:15
Hola de nuevo,

He conseguido resolverlo después de trastear. Pego aquí la consulta por si le sirve de ayuda a alguien.

La tabla ika012 sería PERSONAS y la tabla ika013 sería DIRECCIONES:

select i012nombre_completo, i013domicilio from ika012
LEFT JOIN (select i013id_alumno, MAX(i013id) AS M FROM ika013 GROUP BY i013id_alumno) AS inscripciones ON i012id = inscripciones.i013id_alumno
LEFT JOIN ika013 ON i013id = inscripciones.M
order by i012nombre_completo

Un saludo.
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