Probleme jointure 2 bases mysql

astrolabbcracker Messages postés 106 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 11 juin 2012 - 2 mai 2008 à 00:03
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 2 mai 2008 à 10:51
bonjour et merci de lire ce message

j'ai 2 bases de données qui sont reliées par NOM et je voudrais sélectionner avec php les lignes absentes d'un côté et présente de l'autre : exemple

première table:
paul - foot -
joel - ping-pong
bruno - baskett

seconde table
paul - 33
bruno - 12

Comment sélectionner facilement dans cet exemple, la ligne joel - ping-pong ? Je ne sais pas par quel bout prendre le problème merci de votre aide .

Let's burn !

3 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
2 mai 2008 à 09:55
Salut,

je ne suis pas sur d'avoir bien compris mais ce que tu cherche c'est peut être :

$nom = 'joel';
mysql_query("SELECT * FROM première table WHERE `NOM`='".$nom."'");

a++

Si t'a besoin d'aide, MP !!!
0
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
2 mai 2008 à 10:49
Bonjour,

Tu peux utiliser une sous requête qui te permettra de filtrer les résultats :

SELECT nom, sport FROM table1 WHERE nom NOT IN (SELECT DISTINCT(nom) FROM table2)

Tu peux aussi utiliser les jointures. Si tu join les deux tables sur le nom, la ligne 'joel' aurra un age à NULL. Si tu filtre sur ça, tu ne récupère que ce qui t'interesse :

SELECT t1.nom,t1.sport FROM table1 t1 LEFT JOIN table2 t2 ON t1.nom = t2.nom WHERE t2.age IS NULL

Grrrrrrrrrrr
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mai 2008 à 10:51
Hello,

ça va être compliqué en une seule requête d'aller chercher des 2 côtés je pense...
Là à 1ère vue, je vois 2 requête. La 1ère :
SELECT
    t1.nom, t1.sport
FROM
    table1 t1
WHERE NOT EXISTS (
    SELECT * FROM table2 t2 WHERE t2.nom = t1.nom
)

et l'autre...ben c'est l'inverse.
0
Rejoignez-nous