Vamos a aclarar una cosa: LEFT JOIN y RIGHT JOIN se usan
exclusivamente cuando una relación dada es opcional, y se desean obtener aquellos registros sin coincidencias.
En tu diseño, me resulta muy poco creíble que no haya relaciones mandatorias entre las tablas
depositos, depositoscertificacion, categorias, provincias, ciudades y tipodeposito. AL menos desde el punto de vista de análisis de sistemas, ese tipo e relaciones debería ser obligatoria.
Por otro lado, si lo que quieres es el registro más reciente, hay un modo más simple.
Supongamos que las relaciones son mandatorias, y probemos esto:
Código MySQL:
Ver originalSELECT de.id
, nombre_deposito
, tipo
, localidad
, provincia
, categoria
, fecha_certificado
, vencimiento
, comentarios
de.id,
de.nombre nombre_deposito,
td.tipo,
ci.localidad,
pr.provincia,
ca.categoria categoria,
dc.fecha fecha_certificado,
de.comentarios
INNER JOIN depositoscertificacion dc
ON (dc.depositoId
= de.id
)
Por otro lado te destaco que si la columna "ID" de la tabla DEPOSITOS es la clave primaria, esto:
no tiene sentiudo, porquer una PK jamás puede ser cero ni tener un valor negativo.
Partamos de esa prueba, dinos qué es lo que te devuelve, y dinos qué es lo que debería devolver.
Postea tablas con datos.