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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL]Erreur requête imbriquée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL]Erreur requête imbriquée

n°1414942
Kali__
Posté le 27-07-2006 à 22:53:07  profilanswer
 

Bonjour, j'ai un problème de compatibilité et je trouve pas de solution...
 
Mon hébergeur est en MySQL 4.0.15-max-nt et chez moi je suis en MySQL 4.1.9-max et voila ce que j'avais fait :
 

Code :
  1. SELECT *
  2. FROM fusion_lan
  3. WHERE lan_temps <0
  4. AND lan_avenir =1
  5. AND lan_temps
  6. IN (
  7. SELECT MAX( lan_temps )
  8. FROM fusion_lan
  9. WHERE lan_temps <0
  10. AND lan_avenir =1
  11. )


 
Ce qui marche parafaitement mais une fois executer sur le serveur de mn hebergeur ça me retourne :
 

Citation :

Erreur
 
requête SQL :
 
SELECT *
FROM fusion_lan
WHERE lan_temps < 0 AND lan_avenir = 1 AND lan_temps
IN (
 
SELECT MAX( lan_temps )
FROM fusion_lan
WHERE lan_temps < 0 AND lan_avenir = 1
)
 
MySQL a répondu:
 
Erreur de syntaxe près de 'SELECT MAX( lan_temps )  FROM fusion_lan WHERE lan_temps < 0 AND' à la ligne 1


 
 
On m'a dit que c'était a cause du fait que le problème vient de la requête imbriqué qui n'est géré car partir de la version 4.1
Et qu'il n'y a qu'une solution, sauvegarder le résultat intermèdiaire.
Et on ma donné ce lien : http://mysql.developpez.com/faq/?p [...] s_requetes
 
Qui explique comment palier au problème de requête imbriqués pour les version inférieur à 4.1 .
 
Donc j'ai essayer de recoder mon code pour obtenir :

Code :
  1. CREATE TEMPORARY TABLE table_temp (
  2.  id int,
  3.  Maximum int
  4. );
  5. LOCK TABLES fusion_lan READ;
  6. INSERT INTO table_temp select lan_id, max(lan_temps) FROM fusion_lan WHERE lan_temps < 0 AND lan_avenir=1;
  7. SELECT fusion_lan.* FROM fusion_lan WHERE fusion_lan.lan_id = table_temp.id and fusion_lan.lan_temps = table_temp.Maximum;
  8. UNLOCK fusion_lan;
  9. DROP TABLE table_temp;


 
Mais maintenant j'ai comme message d'erreur chez mon hebergeur :

Citation :

Erreur
 
requête SQL :  
 
CREATE TEMPORARY TABLE table_temp(
id int,
Maximum int
)
 
MySQL a répondu:
 
Accès refusé pour l'utilisateur: 'user@localhost'. Base 'base'


 
Donc si quelqu'un voulais bien m'aider je lui serais ès reconnaissant.
 
Merci d'avance.

mood
Publicité
Posté le 27-07-2006 à 22:53:07  profilanswer
 

n°1414952
couak
Posté le 27-07-2006 à 23:07:19  profilanswer
 

dans la doc de mysql :

From MySQL 4.0.2 on, to create temporary tables, you must have the CREATE TEMPORARY TABLES privilege.


il faut que tu modifies les droits de création de table temporaires, mais avant de te lancer dedans vérifie que tu possèdes ce droit chez ton hébergeur


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

  [SQL]Erreur requête imbriquée

 

Sujets relatifs
Inserser et lire fichier word dans base de donnees SQLProbleme requete WMI interminable
Resultat requete popup[vb6] difficulté à faire une requete sql
[resolu] pb execution requeteUne requete qui marche en local mais pas chez mon hebergeur
requete sql sur un cahmp ou un autreQue signifie ce message d'erreur [débutant]
mysql_result(): message d'erreurErreur SQL 1064 : Requête imbriquée avec jointure !!!
Plus de sujets relatifs à : [SQL]Erreur requête imbriquée


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