Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/04/2013, 07:59
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: consulta que funciona en servidor local pero no el remoto

Es completamente razonable que te devuelva todo, porque eso es precisamente lo que hace el LEFT JOIN: Devolver todo lo de la tabla derecha, tenga o no relación con la tabla izquierda.
Pero además, tu estás pidiendo que te devuelva todo aquello que coincida con al menos uno de los criterios del WHERE, ya que todas las condiciones están definidas como OR...

En definitiva, esa consulta no es buena.
Si lo que quieres es darle condiciones dinámicas, de modo tal que puedas poner un sólo parámetro o más de uno, y te responda en base a eso, es mejor que los parámetros del WHERE los vayas agregando dinámicamente, pero no que sean fijos. Eso requiere que valides uno a uno los datos ingresados y que vayas agregando la condición ingresada para esa sola ejecución.
¿Se entiende?

Como sugerencia...
1) No uses LEFT JOIN a menos que eso sea lo que realmente necesitas. Usa INNER JOIN.
2) No uses paréntesis por que si. Generan cambios en el parseo, en especial en el FROM.
3) Usa alias. La consulta como está es muy difícil de leer por exceso de nombres:
Código SQL:
Ver original
  1. SELECT   *
  2.     FROM notificaciones N LEFT JOIN victimas V
  3.          ON n.identificacion = V.documento =
  4.    WHERE N.resolucion = '$resolucion'
  5.       OR N.identificacion = '$documento'
  6.       OR N.descripcion = '$descripcion'
  7.       OR V.primer_nombre = '$primer_nombre'
  8.       OR V.segundo_nombre = '$segundo_nombre'
  9.       OR V.primer_apellido = '$primer_apellido'
  10.       OR V.segundo_apellido = '$segundo_apellido'
  11.       OR V.vereda_declarante = '$vereda'
  12.       OR V.tipo_documento = '$tipo_documento'
  13.       OR N.guia = '$guia'
  14.       OR N.tipo_notificacion = '$tipo_notificacion'
  15.       OR N.tramitador = '$tramitador'
  16.       OR V.departamento_declarante = '$departamentos_cont'
  17. ORDER BY primer_apellido
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)