JeuWeb - Crée ton jeu par navigateur
verification sur 2 tables - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : verification sur 2 tables (/showthread.php?tid=5457)



verification sur 2 tables - hercull - 05-05-2014

Bonjour,

Je dois mettre à jour les emails contenu dans ma bdd.
J'ai 2 tables contenant chacune d'elles des emails : table1 et table2.
la table1 est une ancienne table ou sont stockés des emails, la table2 est une autre table contenant aussi des emails, seulement certains emails sont dans la table1 et 2 et donc en double.
Je voudrai que mon script m'affiche uniquement les email de la table2 qui ne sont pas aussi dans la table1.
Au final je voudrais créer une nouvelle liste à jour qui contiendrai les emails de la table1 + les emails de la table 2 restants(vidé des doublons).

ps: le champs de ma table1 est nommé : email , le champs de ma table2 est nommé : Email.


Voici sur quoi je suis parti mais cela ne fonctionne pas:



Code :
$query = 'SELECT email FROM table1;';
        $reponse = mysql_query($query) or die(mysql_error());

        $query1 = 'SELECT Email FROM table2;';
        $reponse1 = mysql_query($query1) or die(mysql_error());

        while ($row = mysql_fetch_array($reponse)) {
            while ($row1 = mysql_fetch_array($reponse1)) {
                if ($row1['Email'] !== $row['email']) {
                    echo $row1['Email'] . ' <br />';
                }
            }
        }


Merci.


RE: verification sur 2 tables - srm - 05-05-2014

SELECT email FROM table2 WHERE email NOT IN (select email from table1)

Et voilà Smile


RE: verification sur 2 tables - hercull - 05-05-2014

Merci de la réponse rapide et en plus cela marche parfaitement.^^


RE: verification sur 2 tables - Xenos - 05-05-2014

Pour savoir si je les ai bien comprises, une jointure externe fonctionnerait-elle ici?


SELECT email FROM `table1`
LEFT OUTER JOIN `table2` ON `table1`.`email` = `table2`.`email`

UNION

SELECT email FROM `table2`
RIGHT OUTER JOIN `table1` ON `table2`.`email` = `table1`.`email`;