compare des champs différents

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : compare des champs différents

par Sékiltoyai » 09 juil. 2008, 12:54

Réfléchis un peu, tu lui demandes tous les couples mail, mail_faux pour lesquels le mail est différent du mail_faux, ensuite pour chaque couple tu demandes le mail, et tu demandes qu'il soit unique. Evidemment qu'il va tout te renvoyer, vu que chaque mail appartiendra à moult couples.

Il faut que tu utilises NOT IN() par exemple (je crois qu'il y a aussi EXCEPT ou MINUS) :

Code : Tout sélectionner

SELECT ... FROM truc WHERE champ NOT IN(SELECT champ FROM truc2 WHERE blablabla);

par pat » 09 juil. 2008, 12:50

Je te remercie ça fonctionne bien.
Par contre je ne comprend toujours pas pourquoi ma méthode ne fonctionne pas

par Vurtu » 09 juil. 2008, 12:45

Code : Tout sélectionner

SELECT DISTINCT mail FROM mail WHERE mail NOT IN (SELECT mail_faux FROM mail_faux)
Ca devrait fonctionner :)

compare des champs différents

par pat » 09 juil. 2008, 11:51

Bonjour,

Code : Tout sélectionner

CREATE TABLE `mail_faux` ( `id` int(100) NOT NULL auto_increment, `mail_faux` varchar(100) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Contenu de la table `mail_faux` -- INSERT INTO `mail_faux` VALUES (1, 'tata'); INSERT INTO `mail_faux` VALUES (2, 'titi');
J'ai 2 tables
mail et mail_faux

mail possede les champs id et mail
mail_faux possede les champs id et mail_faux

Je veux garder uniquement les mail qui ne sont pas commun au 2 tables
ex: mail contient toto; titi; tata; tutu et mail_faux contient titi; tata
je veux donc que ma requête me donne toto et tutu

voilà ce que j'ai ecrie

Code : Tout sélectionner

SELECT DISTINCT mail FROM mail, mail_faux WHERE mail.mail not like mail_faux.mail_faux
Mais ça ne marche pas j'ai aussi essayé avec <> mais ça ne marche pas non plus[/quote]