Bonjour à tous,
Je souhaite marquer les enregistrements d'une table de prospect dont l'adresse e-mail est revenue en défaut.
Dans ma table principale (p_entrep), l'adresse e-mail s'apelle adremail et est un varchar(100) indexé. le champ flag est accept_mails, varchar(1), mis par défaut à "O". Volume de la table 11361 enr.
J'ai une table des adresse e_mail rejetées où l'adresse e-mail s'apelle aussi adremail et est aussi un varchar(100) indexé. Volume de la table 132 enr.
Je fais :
UPDATE p_entrep,ln_refuse SET p_entrep.accept_mails="N" WHERE p_entrep.adremail = ln_refuse.adremail
J'obtiens :
QUery OK (bien) 0 enregistrements (moins bien).
En réalité il y a 9 enregistrement ayant adremail commun aux deux tables.
Je me dit que je n'ai pas correctement écrit ma jonction, je la vérifie en select en tapant :
SELECT p_entrep.adremail FROM p_entrep,ln_refuse WHERE p_entrep.adremail = ln_refuse.adremail
J'obtiens à nouveau le même résultat, cad :
Query OK, 0 enregistrements.
N'obtenant pas mes 9 enr, je tente :
EXPLAIN SELECT p_entrep.adremail FROM p_entrep,ln_refuse WHERE p_entrep.adremail = ln_refuse.adremail
il me répond :
1 simple ln_refuse index adremail 100 NULL
1 simple p_entrep ref adremail 101 mo_db.lnrefuse.adremail
132 unsing index
5 Using where
Que je n'arrive pas à interpréter.
Pourquoi ne lit-il que 5 ligne de ma table principale ?
Où ais-je loupé qlq chose ?
Merci par avance pour votre aide et votre soutien
Partager