Creo que te estás complicando demasiado:
Código sql:
Ver originalSELECT *
FROM tanques T LEFT JOIN vencimientos V USING(id_tanque)
ORDER BY V.fecha
DESC LIMIT 1;
o bien:
Código sql:
Ver originalSELECT *
FROM tanques T LEFT JOIN vencimientos V USING(id_tanque)
HAVING V.fecha <= MAX(V.fecha);
... y otras formas más.
No es buena idea usar subconsultas si no es realmente necesario. Una subconsulta sobre la misma tabla puede representar el doble de accesos a disco que con una sola consulta, en a cual pueda obtenerse la misma ifo.
Nota: En MySQL, LEFT OUTER JOIN existe sólo por compatibilidad con ODBC. Si no lo usas, entonces es mejor usar otro tipo de
sintaxis.