Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/05/2014, 12:41
jrlexx
 
Fecha de Ingreso: marzo-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: Como Optimizar validacion

La solucion la estoy buscando para mysql, si pongo algo de php es para aclarar lo que hago despues y explicarle @jurena lo que realizo.

la setencia actual funciona bien, me informa si hay mas de un valor que es lo que necesito, el problema esta en que necesito que la consulta se demore menos, o realizar la misma consulta de alguna manera para que el tiempo se minimo, he probado lo que me escribio @jurena pero demora el mismo tiempo, los que campo que utilizo estan indexados.

que otras opciones puedo probar?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En los foros de Bases de DAtos las soluciones son en SQL. Si quieres soluciones para PHP u otro lenguaje, muevo tu post al foro correspondiente.



Lo que te quiere decir @jurena es que si no devuelve registros, tampoco devolverá un NULL en ninguna parte, sino sólo una tabla vacía, con los nombres de la columnas, pero sin registros. En ese caso el IFNULL() no opera, ya que requiere que exista al menos un registro.
El COUNT(), por su lado, por definición no puede devolver NULL. Solo devuelve cero o un valor mayor a cero. El NULL se toma como cero en el COUNT(), pero para funcionar se requiere que la query devuelva al menos UN registro, y el INNER JOIN sólo devuelve registro si hay al menos UN registro que cumpla las condiciones del mismo.
El único caso donde que el COUNT() puede devolver algo en una consulta que devuelva un resultado vacío, es si es el único dato que pueda devolver:
Código SQL:
Ver original
  1. SELECT COUNT(*) total
  2. FROM tablaA T1 INNER JOIN tablaB T2 ON T1.idTablaA = T2.idTablaA
El IFNULL() sólo es realmente funcional si: 1) Usas LEFT JOIN, 2) Lo aplicas sobre un campo donde en un registro dado hay un NULL en la tabla, en un registro existente.