Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/01/2010, 15:48
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Select me da campos que no solicita la consulta

Yo, por más que reviso la consulta no veo problemas de lógica (fuera de no usar funciones específicas en algunas partes), por lo que sugeriría un experimento.
Dinos qué es lo que devuelve cada una de las siguientes consultas, para ver si detectamos a partir de qué punto los resultados son incorrectos:
Consulta 1:
Código MySQL:
Ver original
  1.   E.artista,
  2.   E.tipo,
  3.   E.titulo,
  4.   E.fecha_inicio,
  5.   E.fecha_fin,
  6.   E.hasta,
  7.   E.nombre_sala_ex,
  8.   E.thumbnail,
  9.   E.url,
  10.   E.preludio,
  11.   S.pueblo,
  12.   date_format(E.fecha_fin, '%d/%m/%Y') Fecha,
  13.   S.zona
  14.   exposiciones E
  15.   INNER JOIN salasexposiciones S ON E.nombre_sala_ex = S.nombre_sala_ex
  16.   S.zona = 'Jaén'
  17. GROUP BY E.exposicion_id
  18. ORDER BY E.fecha_fin;
Consulta 2:
Código MySQL:
Ver original
  1.   E.artista,
  2.   E.tipo,
  3.   E.titulo,
  4.   E.fecha_inicio,
  5.   E.fecha_fin,
  6.   E.hasta,
  7.   E.nombre_sala_ex,
  8.   E.thumbnail,
  9.   E.url,
  10.   E.preludio,
  11.   S.pueblo,
  12.   date_format(E.fecha_fin, '%d/%m/%Y') Fecha,
  13.   S.zona
  14.   exposiciones E
  15.   INNER JOIN salasexposiciones S ON E.nombre_sala_ex = S.nombre_sala_ex
  16.   S.zona = 'Jaén'
  17.   AND  (E.fecha_inicio <= CURDATE() AND E.fecha_fin >= CURDATE())
  18. GROUP BY E.exposicion_id
  19. ORDER BY E.fecha_fin;
Consulta 3:
Código MySQL:
Ver original
  1.   E.artista,
  2.   E.tipo,
  3.   E.titulo,
  4.   E.fecha_inicio,
  5.   E.fecha_fin,
  6.   E.hasta,
  7.   E.nombre_sala_ex,
  8.   E.thumbnail,
  9.   E.url,
  10.   E.preludio,
  11.   S.pueblo,
  12.   date_format(E.fecha_fin, '%d/%m/%Y') Fecha,
  13.   S.zona
  14.   exposiciones E
  15.   INNER JOIN salasexposiciones S ON E.nombre_sala_ex = S.nombre_sala_ex
  16.   S.zona = 'Jaén'
  17.   AND
  18.       (E.fecha_inicio BETWEEN CURDATE() AND DATE_ADD(CURDATE() , INTERVAL 15 DAY )
  19. GROUP BY E.exposicion_id
  20. ORDER BY E.fecha_fin;
Consulta 4:
Código MySQL:
Ver original
  1.   E.artista,
  2.   E.tipo,
  3.   E.titulo,
  4.   E.fecha_inicio,
  5.   E.fecha_fin,
  6.   E.hasta,
  7.   E.nombre_sala_ex,
  8.   E.thumbnail,
  9.   E.url,
  10.   E.preludio,
  11.   S.pueblo,
  12.   date_format(E.fecha_fin, '%d/%m/%Y') Fecha,
  13.   S.zona
  14.   exposiciones E
  15.   INNER JOIN salasexposiciones S ON E.nombre_sala_ex = S.nombre_sala_ex
  16.   S.zona = 'Jaén'
  17.   AND
  18.     ((E.fecha_inicio <= CURDATE() AND E.fecha_fin >= CURDATE())
  19.       OR
  20.       (E.fecha_inicio BETWEEN CURDATE() AND DATE_ADD(CURDATE() , INTERVAL 15 DAY ))
  21. GROUP BY E.exposicion_id
  22. ORDER BY E.fecha_fin;

Este tipo de pruebas lo suelo hacer cuando algún problema de lógica se escapa a la observación de la consulta. Muchas veces tiene que ver con la forma en que MySQL realiza el parseo y que no podemos detectar a simple vista.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)