Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2012, 20:20
Avatar de kivpson
kivpson
 
Fecha de Ingreso: marzo-2011
Mensajes: 37
Antigüedad: 13 años, 8 meses
Puntos: 7
Sub consulta en LEFT JOIN con LIMIT

Hola a todos, tengo un problema con una consulta, se que esta mal realizada porque no obtengo los resultados requeridos.

El escenario es: tengo 2 tablas, una que almacena bases, y otra los saldos de cada dia, ahora resulta que deseo realizar una consulta que me devuelva el ultimo saldo de cada base.

| bases
+--------
| id_base
| nombre_base


| historial_saldos
+--------
| id_historial_base
| id_base
| saldo_actual
| fecha

Para obtener el ultimo saldo realizo el siguiente select:

SELECT id_base, saldo_actual
FROM historial_saldos
WHERE id_base = 1
ORDER BY fecha DESC LIMIT 1

Sin problemas me devuelve el saldo inicial de la base con id 1

Pero ahora lo requiero para todas las bases en un select

SELECT
s.saldo_actual,
b.nombre_base
FROM
bases b
LEFT JOIN(
SELECT id_base, saldo_actual
FROM historial_saldos
ORDER BY fecha DESC LIMIT 1
) s ON s.id_base = b.id_base

En teoría debería devolverme el ultimo saldo, pero por lo visto al incluir un LIMIT 1 en la subconsulta, mysql me devuelve un solo registro para toda la consulta y no 1 para cada registro hallado en la tabla bases.

Cual seria la consulta adecuada?