Con esa consulta única que te he propuesto, la base de datos te devolverá siempre dos datos, primero el más antiguo, y luego el más reciente, y el único criterio para distinguirlos será el orden en que se han cargado. Los nombres de los campos serán los de los campos de la primera selección de la unión. El resto lo harás con tu programa, usando un contador, una variable, que inicializas con el valor 1 y luego lo metes en el ciclo al final incrementando su valor en 1; cuando el varlor de esa variable sea 1, lo muestras como el primero; cuando sea 2 como el último, o algo así, pero estas cosas deberás resolverlas en el foro de programación pertinente.
Esto, si lo haces con una sola consulta; si lo haces con dos consultas separarás cada uno de ellos:
Código sql:
Ver originalSELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
FROM cabecera_eventos ce
INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
ORDER BY de.fecha ASC
LIMIT 1
Código sql:
Ver originalSELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
FROM cabecera_eventos ce
INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
ORDER BY de.fecha DESC
LIMIT 1