Espero que el resultado de la tercera consulta siguiente contenga id = 732. No es así ¿Porqué es eso?MySQL SELECCIONE x FROM a WHERE NOT IN (SELECCIONAR x FROM b) - Resultado inesperado
mysql> SELECT id FROM match ORDER BY id DESC LIMIT 5 ; +------------+ | id | +------------+ | 732 | | 730 | | 655 | | 458 | | 456 | +------------+ 5 rows in set (0.00 sec) mysql> SELECT id FROM email ORDER BY id DESC LIMIT 5 ; +------------+ | id | +------------+ | 731 | | 727 | | 725 | | 724 | | 723 | +------------+ 5 rows in set (0.00 sec) mysql> SELECT * FROM match WHERE id NOT IN (SELECT id FROM email) ; Empty set (0.00 sec)
Hay tres entradas NULL en la tabla email.id, y no hay entradas NULL en match.id.
La tabla completa/consultas se pueden ver en http://pastebin.ca/1462094
¿Es el caso del OP? Según tengo entendido, "si no se encuentra ninguna coincidencia y una de las expresiones en la lista es NULA", no es el caso, ya que debería encontrarse 732, lo que invalidaría esa cláusula, ¿no? – Eric
@Eric: 732 no se encuentra en los correos electrónicos. – Quassnoi
@Quassnoi: Tienes razón, lapso de cerebro :) – Eric