Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/06/2010, 01:22
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Novato con LEFT JOIN

Yo creí que cambiaste de criterios de búsqueda:
1)
Cita:
los usuarios de la empresa de codigo 3 que no estan en la tabla usuario_auditoria agregándole la condicion de que aparte de ser de la empresa 3 , el num_aud sea 6 (por ejemplo)
Imposible: pues pides que no estén en la tabla usuario_auditoria y luego exiges que el num_aud = 6, algo que tendría que aparecer en la tabla usuario_auditoria. Por tanto, nunca te devolverá nada. Ya te lo ha dicho gnzsoloyo.
2)
Cita:
ahora si quiero que la consulta me retorne los usuarios de la empresa 3 que no estan asignados a una auditoria especifica por ejemplo la 10
Aquí pensé que habías cambiado de criterio y que buscabas todos los de la empresa 3 que no están asignados a a auditoria 10, pero que, como es lógico, tenían datos en la tabla auditoria_usuario, es decir, estaban asignados a otras auditorias. Con la última consulta que te propuse (la que no tiene el null e incluso y en la que he cambiado el LEFT JOIN por INNER JOIN), sale el Usuario6, pues pertenece a la empresa 3 y tiene como num_aud el 11. Pero tampoco esa consulta mía resuelve bien todos los casos, pues si el usuario 6 también tuviera como num_aud el 10, seguiría saliendo. Para lo que yo he entendido es mejor usar un
Código MySQL:
Ver original
  1.    U.cod_usu,
  2.    U.nombre
  3.    usuarios U LEFT JOIN usuario_auditoria UA on U.cod_usu = UA.cod_usu
  4.  WHERE U.cod_empresa=3
  5.  AND U.Cod_usu NOT IN (SELECT Cod_usu FROM usuario_auditoria  WHERE Num_aud = 10)
Como ves, el problema que tienes no es tanto la consulta en sí como que la lógica de búsqueda pueda ofrecerte resultados.

Última edición por jurena; 27/06/2010 a las 01:28