Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2913 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySql 4.0 - Imbrication de Select avec In()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MySql 4.0 - Imbrication de Select avec In()

n°1808485
grosbin
OR die;
Posté le 05-11-2008 à 11:03:21  profilanswer
 

Bonjour, j'ai des problèmes avec l'imbrication des requêtes
ici il s'agit de traiter des doublons ( dans l'imbrication, puis d'ajouter des filtres )

select id,EMAIL,champsups from table where EMAIL IN(select EMAIL from table group by EMAIL having count(id)>1) AND ..


#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN ( (select EMAIL
 
Someone got an Idea ?  :??:  
L'idée de base est de faire un group, mais ce dernier fait perdre les information individuelle de chaque record ..


Message édité par grosbin le 05-11-2008 à 13:24:56

---------------
Photos Panoramiques Montagnes Haute Savoie
mood
Publicité
Posté le 05-11-2008 à 11:03:21  profilanswer
 

n°1808504
rufo
Pas me confondre avec Lycos!
Posté le 05-11-2008 à 11:27:27  profilanswer
 

ben t'as mis le count(id) dans la sous-requête alors qu'il n'y a pas de id dans le select de ta sous-requête. Ca viendrait pas de ça?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1808509
grosbin
OR die;
Posté le 05-11-2008 à 11:31:40  profilanswer
 

Négatif, le having count est là, justement pour ne pas retourner le champ et directement retourner un array avec les valeurs de Mails, présents plus d'une fois dans la base
Sinon il reste plus qu'à les retourner en php dans une chaine et construire un seconde requete ( mais c'est pas bien )


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1808529
rufo
Pas me confondre avec Lycos!
Posté le 05-11-2008 à 11:45:55  profilanswer
 

il se mélangerait pas les pinceaux entre les champs/tables portant le même nom. Utilises un alias pour ta sous requête :

Code :
  1. select id,EMAIL,champsups from table where EMAIL IN(select t1.EMAIL from table t1 group by t1.EMAIL having count(id)>1) AND ..



---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1808545
grosbin
OR die;
Posté le 05-11-2008 à 11:57:14  profilanswer
 

non plus :(
si je remplace le contenu du in par les résultats de la requete imbriquée, ça passe ..

Code :
  1. select a.id from table a where a.id=ANY(select b.id from table b where b.id>17000)


ça non plus .. je suis sous MySQL: 5.0.32 1and1 ..


Message édité par grosbin le 05-11-2008 à 12:26:26

---------------
Photos Panoramiques Montagnes Haute Savoie
n°1808558
casimimir
Posté le 05-11-2008 à 12:09:27  profilanswer
 

Code :
  1. select id,EMAIL,champsups
  2. from table
  3. where EMAIL IN(select EMAIL from (select EMAIL,count(id) from table group by EMAIL having count(id)>1)) AND ..

?

n°1808564
grosbin
OR die;
Posté le 05-11-2008 à 12:14:59  profilanswer
 

tjrs erreur de syntaxe que je vois pas :(


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1808577
casimimir
Posté le 05-11-2008 à 12:26:32  profilanswer
 

ça n'existe pas un ide pour mysql ou on peut taper sa requête et ou il dit ou on se goure dans sa requête?
 
parce que la c'est comme programmer en notepad quoi...

n°1808582
grosbin
OR die;
Posté le 05-11-2008 à 12:42:42  profilanswer
 

Mauvaise Nouvelle : ça marche en localhost sur la 5.0.27-community-log
mais échoue sur 1and1 en version 4.0.27-standard
 soit : comment construire cette requete en mysql version 4.0 pour un operateur qui existe depuis la 4.1 ?


Message édité par grosbin le 05-11-2008 à 13:21:27

---------------
Photos Panoramiques Montagnes Haute Savoie
n°1808849
rufo
Pas me confondre avec Lycos!
Posté le 06-11-2008 à 09:41:26  profilanswer
 

mysql 4.0 ne supporte pas les sous-requêtes. POur ça, faut passer par une table temporaire (create temporary table).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySql 4.0 - Imbrication de Select avec In()

 

Sujets relatifs
Recuperer variable d'un select multiple via javascriptRécupérer variable php d'un select multiple
-:[mSQL ou mySQL]:-requete mysql categorie et sous cat affichage des produits
requête mysql : insert into where exists ?[Résolu] Menu et sous menu-dynamique
modifier le moteur d'une base Mysql[resolu]Verification 'variable || contenu champ table mysql'
MySQL Environnement GraphiqueonKeypress sur un SELECT
Plus de sujets relatifs à : MySql 4.0 - Imbrication de Select avec In()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR