par
ouckileou » 29 avr. 2008, 17:49
Alors ceci :
Code : Tout sélectionner
SELECT t_mail.mail, mail_faux
FROM t_mail
LEFT OUTER JOIN mail_faux ON t_mail.mail = mail_faux.mail_faux
WHERE mail_faux IS NULL;
Cette requête sélectionne toutes les adresses emails contenues dans les deux tables, grâce à la jointure (ON =)
Mais AUSSI les lignes de t_mail qui ne satisfont pas la condition (LEFT OUTER JOIN), qui n'auront pas de correspondance "mail_faux" dans "mail_faux". "mail faux" sera donc remplacé par NULL.
On filtre ensuite les lignes retournées, on ne prend que celles qui ont NULL, car ce sont les adresses emails qui ne sont pas dans la table mail_faux, donc les bonnes.
Essaie sans mettre la ligne du WHERE d'abord, pour voir ce que ça donne.
Alors ceci :
[code]
SELECT t_mail.mail, mail_faux
FROM t_mail
LEFT OUTER JOIN mail_faux ON t_mail.mail = mail_faux.mail_faux
WHERE mail_faux IS NULL;
[/code]
Cette requête sélectionne toutes les adresses emails contenues dans les deux tables, grâce à la jointure (ON =)
Mais AUSSI les lignes de t_mail qui ne satisfont pas la condition (LEFT OUTER JOIN), qui n'auront pas de correspondance "mail_faux" dans "mail_faux". "mail faux" sera donc remplacé par NULL.
On filtre ensuite les lignes retournées, on ne prend que celles qui ont NULL, car ce sont les adresses emails qui ne sont pas dans la table mail_faux, donc les bonnes.
Essaie sans mettre la ligne du WHERE d'abord, pour voir ce que ça donne.