Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar todos campos pero del primer y ultimo registro

Estas en el tema de Seleccionar todos campos pero del primer y ultimo registro en el foro de Mysql en Foros del Web. Saludos, Disculpen me gustaria si fuera posible recibir una vez mas su ayuda sobre el siguiente tema: Tengo 2 tablas 1 es la cabecera de ...
  #1 (permalink)  
Antiguo 09/12/2008, 22:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
Seleccionar todos campos pero del primer y ultimo registro

Saludos,

Disculpen me gustaria si fuera posible recibir una vez mas su ayuda sobre el siguiente tema:

Tengo 2 tablas 1 es la cabecera de eventos y la otra es el detalle_eventos, enla cabecrea se guarda el codigo, titulo, detalle e iamgen del evento y el detalle se guanda las fechas, como armaria mi sleect para seleccionar todos los campos de la tabla cabecera y todos los campos de la tabla detalle pero solo del primer y ultimo registro mas o menos lo estoy armando asi:

SELECT * FROM cabecera_eventos, detalle_eventos WHERE cab_id=det_cabecera ........

hasta ahi me quedo me falta el codigo para seleccionar el primer y ultimo registro dela tabla detalle.

De antemano muchas gracias
  #2 (permalink)  
Antiguo 10/12/2008, 03:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Seleccionar todos campos pero del primer y ultimo registro

Sin con el primer y el último registro te refieres a los que tienen la fecha más antigua y más actual, esta consulta podría ayudarte.

Código sql:
Ver original
  1. (
  2. SELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
  3. FROM cabecera_eventos ce
  4. INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
  5. ORDER BY de.fecha ASC
  6. LIMIT 1
  7. )
  8. UNION ALL (
  9.  
  10. SELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
  11. FROM cabecera_eventos ce
  12. INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
  13. ORDER BY de.fecha DESC
  14. LIMIT 1
  15. )
  #3 (permalink)  
Antiguo 10/12/2008, 07:34
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
De acuerdo Respuesta: Seleccionar todos campos pero del primer y ultimo registro

Gracias Jurena por tu aporte voy a probarlo a ver si resulta aunque viendolo parece q si, muchas gracias
  #4 (permalink)  
Antiguo 10/12/2008, 15:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Seleccionar todos campos pero del primer y ultimo registro

Saludos,
mi duda es como hago para presentar cada dato
  #5 (permalink)  
Antiguo 11/12/2008, 00:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Seleccionar todos campos pero del primer y ultimo registro

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 original
  1. SELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
  2. FROM cabecera_eventos ce
  3. INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
  4. ORDER BY de.fecha ASC
  5. LIMIT 1

Código sql:
Ver original
  1. SELECT ce.codigo, ce.titulo, ce.detalle, ce.imagen
  2. FROM cabecera_eventos ce
  3. INNER JOIN detalle_eventos de ON ce.cab_id = de.det_cabecera
  4. ORDER BY de.fecha DESC
  5. LIMIT 1

Última edición por jurena; 11/12/2008 a las 01:38
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:02.