Ver Mensaje Individual
  #11 (permalink)  
Antiguo 16/03/2010, 08:19
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: sql no mostrar registro si aparece en las 2 tablas.

El problema debe estar en el where que utilizas.

Yo probé la solución y creo que es lo que quieres.

Código MySQL:
Ver original
  1. mysql> select *from pedido;
  2. +------+
  3. | id   |
  4. +------+
  5. |    4 |
  6. |    5 |
  7. |    6 |
  8. +------+
  9. 3 rows in set (0.02 sec)
  10.  
  11. mysql> select *from factura;
  12. +------+
  13. | id   |
  14. +------+
  15. |    1 |
  16. |    2 |
  17. |    4 |
  18. |    3 |
  19. +------+
  20. 4 rows in set (0.00 sec)

Entre estas dos tablas, el unico registro que no debería mostrar es el 4, ya que se encuentra en ambas tablas.

si se aplica la consulta

Código MySQL:
Ver original
  1. mysql> SELECT t1.id FROM
  2.     -> (SELECT id FROM pedido
  3.     -> union ALL
  4.     -> SELECT id FROM factura)t1
  5.     -> GROUP BY t1.id
  6.     -> HAVING count(*) =1;
  7. +------+
  8. | id   |
  9. +------+
  10. |    1 |
  11. |    2 |
  12. |    3 |
  13. |    5 |
  14. |    6 |
  15. +------+
  16. 5 rows in set (0.00 sec)

Efectivamente excluye el 4 que se encuentra repetido.

Con esto, ya puedes mirar la forma de acomodar el resto de campos sin que te interfiera con esta condición.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming