Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/10/2014, 01:51
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diferencia de tiempo entre fecha de dos tablas

Ese select en el WHERE que pones es muy muy ineficiente, usa la que te paso ya te he corregido el error, podias haberlo visto tu mismo.

Código MySQL:
Ver original
  1. SELECT s1.*,
  2.             s3.date_create
  3.  
  4. ////aqui puedes usar las datetime functions para operar con los campos de todas las tablas    
  5.  
  6. FROM   jpv59_obhelpdesk3_messages s1
  7.             INNER JOIN (SELECT tid,MAX(reply_time)
  8.                                   FROM jpv59_obhelpdesk3_messages
  9.                                  GROUP BY tid) s2
  10.                      ON s1.tid = s2.tid
  11.              INNER JOIN tabla2 s3 ON s1.???=s3.???;

En cuanto a lo que preguntas de las vistas, es falso. Pero tienen una desventaja no se puede forzar el uso de indices, USE INDEX(), con lo que en algunos casos es mejor usar una query y poder pedir el uso de determinados indices.

Por otro lado, ese campo diferencia es un campo calculado, por lo tanto es un error crearlo, imagina que hay un cambio en los campos que sirven para calcularlo y no se actualiza el campo diferencia, la bbdd quedaria incoherente.

Crea una vista que de ese valor, diferencia, de forma dinámica.

Código MySQL:
Ver original
  1. CREATE VIEW laDiferencia
  2. SELECT s1.*,
  3.             s3.date_create,
  4.             TIMESTAMPDIFF( MINUTE, s3.date_create, s2.reply_time) diferencia
  5. FROM   jpv59_obhelpdesk3_messages s1
  6.             INNER JOIN (SELECT tid,MAX(reply_time)
  7.                                   FROM jpv59_obhelpdesk3_messages
  8.                                  GROUP BY tid) s2
  9.                      ON s1.tid = s2.tid
  10.              INNER JOIN tabla2 s3 ON s1.tid=s3.id;

(No hagas corta y pega, analiza lo que se te pasa, es la manera de aprender. Ademas como puedes suponer el codigo esta hecho al vuelo, peude contener errores tontos de sintaxis, si lo analizas y lo entiendes podras corregirlos, por ejemplo tabla2 tampoco la va a encontrar, pero es que no se como se llaman todas tus tablas.....)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 08/10/2014 a las 01:59