Probleme requête sur deux table.

Résolu/Fermé
Klementino Messages postés 25 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 18 juin 2010 - 17 mai 2010 à 16:30
Klementino Messages postés 25 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 18 juin 2010 - 18 mai 2010 à 10:39
Bonjour,

Je débute en php/mysql, j'ai crée mon site web sans problème pour le moment, cependant j'ai un souci concernant une requête vers ma base de données.

En fait, j'ai deux tables, appelons-les UNE et DEUX.
Dans ma table DEUX, j'ai les mêmes noms d'adhérents que dans ma table UNE, mais j'ai un champ qui contient la CATEGORIE d'un adhérent donné.

Dans la table UNE, j'ai un champ contenant les adresses mails de mes adhérents.

Je souhaiterais donc effectuer une requête qui, connaissant la variable $CATEGORIE pour ma table DEUX, me permette d'afficher toutes les adresses mails correspondant de ma table UNE.

En français, cela donnerait :

"Sélectionner TOUT de la table UN lorsque le NOM = ( la sélection de tous les NOM de la table DEUX appartenant a la catégorie $CATEGORIE) "

J'ai testé ceci mais sans succès :

"select * from UNE where NOM=(select NOM from DEUX where CATEGORIE = '$CATEGORIE')";


Voilà si quelqu'un pourrait me donner cette requête je lui en serait très reconnaissant.

Cordialement.
A voir également:

3 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
18 mai 2010 à 10:08
Bonjour,

si je me souviens bien de mes cours de SQL, remplacer le "=" par IN et normalement tu devrais avoir tes bons résultats. La requête serait alors :

select * from UNE where NOM IN(select NOM from DEUX where CATEGORIE = '$CATEGORIE')";

Cordialement.
1
Klementino Messages postés 25 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 18 juin 2010
18 mai 2010 à 10:39
Merci beaucoup, cette requête marche en effet parfaitement bien !

Encore merci !
0
ok mais la requête est pas bonne : si DEUX contient plusieurs NOM pour une CATEGORIE, la sous-requête va renvoyer plusieurs NOM.
... et NOM de UNE ne sera jamais égal à plusieurs NOM
0
Klementino Messages postés 25 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 18 juin 2010
18 mai 2010 à 09:45
Aie je viens de me rendre compte de ce soucis.

J'ai en effet ce message d'erreur quand j'execute :

Warning: mysql_query() [function.mysql-query]: Unable to save result set in C:\wamp2\www\US Portet\MailCategorie.php on line 132
Erreur : Subquery returns more than 1 row

Quelqu'un saurait-il me corriger la requête ?

Je ne sais pas trop ce qui va pas là ...

Merci beaucoup d'avance.
0