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 :
- 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
- )
|
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 :
- CREATE TEMPORARY TABLE table_temp (
- id int,
- Maximum int
- );
- LOCK TABLES fusion_lan READ;
- INSERT INTO table_temp select lan_id, max(lan_temps) FROM fusion_lan WHERE lan_temps < 0 AND lan_avenir=1;
- SELECT fusion_lan.* FROM fusion_lan WHERE fusion_lan.lan_id = table_temp.id and fusion_lan.lan_temps = table_temp.Maximum;
- UNLOCK fusion_lan;
- 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.