Pb sur mysql avec requete select * from TABLE IN (select ...)

Signaler
Messages postés
36
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2008
-
Messages postés
10
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
25 avril 2007
-
Salut j ai un pb sur mysql lorsque je fais un requete
du type

select CHAMP from TABLE where CHAMP IN ( select CHAMP from TABLE where CHAMP = VARIABLE);

je suis sur mysql-3.23.53-win si quelqu un pouvait m aider merci

JM

4 réponses

Messages postés
220
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
13 juin 2005

ben le mieux serait de donner la véritable requête, paske si c'est une toute petite erreur de synthaxe on peux pas vraiment le voir avec ce que tu as donné en exemple....
avec de plus le type des champs passé dans le requête (varchar, number,date, etc...)

A+

booth
Messages postés
36
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2008

bon en gros alors j explique :

Requete : SELECT count( cle ) FROM message WHERE sujet IN ( 1, 3 )
---------------------
Résultat :
count( cle )
8
---------------------

et avec ca j ai :
Requete : SELECT cle FROM sujet WHERE forum = 1

---------------------
Resultat
cle
1
3
---------------------

or si je combine l ai deux avec

Requete : SELECT count( cle ) FROM message WHERE sujet IN ( SELECT cle FROM sujet WHERE forum = 1 )

Resultat :

You have an error in your SQL syntax near 'SELECT cle FROM sujet WHERE forum = 1 )' at line 1
Messages postés
220
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
13 juin 2005

Je viens d'aller faire un tour sur la doc de MySql et le ' IN ' ne correspond pas avec ce lui utilisé en SQL avec d'autres BDD

http://www.mysql.com/doc/en/Comparison_Operators.html

donc la seul solution c'est de joindre tes tables...

A+

booth
Messages postés
10
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
25 avril 2007

essai avec un operateur GROUP BY

du genre:

select CHAMP from TABLE GROUP BY CHAMP IN ( select CHAMP from TABLE where CHAMP = VARIABLE);