Ver Mensaje Individual
  #31 (permalink)  
Antiguo 19/03/2010, 15:59
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sql no mostrar registro si aparece en las 2 tablas.

¿Has probado así?
SELECT pedidos.num_factura FROM pedidos WHERE pedidos.num_factura NOT IN (Select pedidos.num_factura FROM pedidos INNER JOIN auditoria ON pedidos.num_factura = auditoria.num_factura WHERE auditoria.id_enpoderde = 1) GROUP BY pedidos.num_factura

Quizás será más rápida así:

SELECT pedidos.num_factura FROM pedidos WHERE pedidos.num_factura NOT IN (Select auditoria.num_factura FROM auditoria WHERE auditoria.id_enpoderde = 1) GROUP BY pedidos.num_factura

Podemos hacer una consulta tal vaz algo más rápida con LEFT JOIN

SELECT pedidos.num_factura FROM pedidos LEFT JOIN (Select auditoria.num_factura FAC FROM auditoria WHERE auditoria.id_enpoderde = 1)t1 ON pedidos.num_factura = t1.FAC WHERE auditoria.num_factura IS NULL GROUP BY pedidos.num_factura


No lo he probado. Por cierto,imagino que tendrás indexado los campos auditoria.id_factura y pedidos.id_factura. Si no es así, seguro que ganas velocidad indexando esos campos

Última edición por jurena; 19/03/2010 a las 16:11