Si tiene una consulta complicada que utiliza muchas tablas pero que no retorna ningún registro, debería utilizar el siguiente procedimiento para encontrar qué está fallando:
            Compruebe la consulta con EXPLAIN para
            ver si encuentra algo que sea erróneo de una manera obvia.
            Consulte Sección 7.2.1, “Sintaxis de EXPLAIN (Obtener información acerca de
        un SELECT)”.
          
            Seleccione únicamente aquellas columnas que están en la
            clausula WHERE.
          
            Vaya quitando las tablas una a una de la consulta hasta que
            devuelva algunos registros. Son las tablas son grandes, es
            una buena idea utilizar LIMIT 10 con la
            consulta.
          
            Ejecute un SELECT sobre la columna que
            debería haber extraido un registro de la tabla que fue
            eliminada en último lugar de la consulta.
          
            Si está comparando columnas FLOAT o
            DOUBLE con números que tengan decimales,
            no puede utilizar comparaciones de igualdad
            (=). Este problema es común en la mayor
            parte de los lenguajes informáticos debido a que no todos
            los valores de coma flotante se pueden almacenar con
            precisión exacta. En algunos casos, cambiar de
            FLOAT a DOUBLE
            soluciona esto. Consulte
            Sección A.5.8, “Problemas con comparaciones en coma flotante”.
          
            Si aún así no puede imaginar que es lo que funciona
            incorrectamente cree un pequeña prueba que pueda ser
            ejecutada con mysql test < query.sql y
            que muestre sus problemas. Muede crear un archivo de prueba
            volcando las tablas con mysqldump --quick db_name
            nombre_de_tabla_1 ...
            nombre_de_tabla_n >
            query.sql. Abra el archivo en un editor, elimine
            algunas líneas de inserción (si hay más de las necesarias
            para demostrar el problema), y añada su sentencia
            SELECT al final del archivo.
          
Verifique que el archivo de prueba demuestra el problema ejecutando los siguientes comandos:
shell> mysqladmin create test2 shell> mysql test2 < query.sql
Envíe el archivo de pruebas utilizando mysqlbug a la lista de correo general de MySQL. Consulte Sección 1.6.1.1, “Las listas de correo de MySQL”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

