Ver Mensaje Individual
  #27 (permalink)  
Antiguo 19/03/2010, 03:00
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.

huesos52,
creo que esta tuya, que es la que me dices, debe funcionar y tiene sentido para mí:
SELECT t1.id FROM
-> (SELECT id FROM pedido WHERE id=3
-> UNION ALL
-> SELECT id FROM factura WHERE id=3)t1
-> GROUP BY t1.id
-> HAVING count(*) =1;

no he probado ninguna, la verdad, pero, si es como dices, y en auditoria puede haber facturas que no están en pedidos, yo también intentaría esto, que tiene la ventaja de que evita un GROUP BY:
Código MySQL:
Ver original
  1. SELECT  T1.FACTURA, T1.ENPODERDE FROM
  2. ((SELECT  pedidos.num_factura FACTURA, pedidos.id_enpoderde ENPODERDE FROM pedidos
  3.  LEFT JOIN auditoria ON pedidos.num_factura = auditoria.num_factura
  4.  WHERE auditoria.num_factura IS NULL AND pedidos.id_enpoderde = 36)
  5.  (SELECT auditoria.num_factura, auditoria.id_enpoderde FROM auditoria
  6.  LEFT JOIN pedidos ON auditoria.num_factura = pedidos.num_factura
  7.  WHERE pedidos.num_factura IS NULL AND auditoria.id_enpoderde = 36))T1

No lo he probado.

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