Cita: -----personas-----
id
nombre
sexo
edad
-----------------------
-------casas--------
id
casa
propietario
fecha_compra
------------------------
supongamos que mi tabla personas tiene 20 registros, la de casa contiene 200, y cada persona puede tener varias casas, lo que deseo hacer es que me muestre 5 personas con la ultima casa que compraron ordenado por fecha_compra descendientemente y los campos a mostrar serian nombre casa y fecha_compra :
Código sql:
Ver originalSELECT personas.nombre, t1.fecha, casas.casa FROM personas
INNER JOIN casas ON casas.propietario = personas.id
INNER JOIN (SELECT MAX(fecha_compra) fecha, propietario FROM casas GROUP BY propietario)t1
ON t1.propietario = personas.id AND t1.fecha = casas.fecha_compra
ORDER BY t1.fecha DESC LIMIT 5
explicación: primero elegimos la última fecha de cada propietario. Luego un inner join entre todos los datos con las dos tablas para poder sacar los datos.
Esto funcionará, creo (no lo he probado), si propietario de la tabla casas es un numero relacionado con el primary key de la tabla personas, id. Si lo que tienes escrito es el nombre en propietario, deberías hacer la relación con personas.nombre.