Problème SQL

flokocha Messages postés 1519 Statut Membre -  
flokocha Messages postés 1519 Statut Membre -
Bonjour,
j'ai un petit problème avec une commande SQL qui parait pourtant simple:

SELECT *
FROM mdl_stat_connex_pltfrm
WHERE id = (
SELECT MAX( id )
FROM mdl_stat_connex_pltfrm )

Mais pourtant lorsque je teste cette commande sous phpMyAdmin, il me renvoie une erreur:
#1064 - You have an error in your SQL syntax near 'SELECT MAX( id )
FROM mdl_stat_connex_pltfrm ) ' at line 4

Je ne comprends pas.
Merci à celui qui pourra m'aider.
A voir également:

9 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 663
 
Je ne connais pas bien mySQL, mais peut-être que tu as une version trop ancienne de mySQL ?

http://www.mysql.com/doc/en/Subqueries.html
"Starting with 81 version 4.1, MySQL supports all subquery forms and operations which the SQL standard requires"
0
flokocha Messages postés 1519 Statut Membre 281
 
En effet les imbrications de ce type ne fonctionnent qu'à partir de la version 4.1 et j'ai la 3.23 .
Malheureusement je ne peux pas la mettre à jour car je suis sur le serveur d'une université.

Si quelqu'un sait comment je pourrais faire un équivalent de cette commande sans faire d'imbrication...

Sinon il me reste encore la pendaison...
0
teebo Messages postés 33570 Statut Modérateur 1 793
 
Tiens ca marche avec les nouvelles versions, je savais pas...
Sinon si tu as juste cette requete, oui c'est facile:
SELECT * FROM table WHERE id=MAX(id);

C'est meme pas souhaitable de les imbriquer (ou j'ai pas les yeux en face de trous :o) )

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0
teebo Messages postés 33570 Statut Modérateur 1 793
 
Oops. ou pas le cerveau en place, pardon, ca serait plutot:
SELECT *, MAX(id) as max FROM table WHERE id=max;

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
teebo Messages postés 33570 Statut Modérateur 1 793
 
Ou encore
SELECT * FROM table HAVING id=MAX(id);

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0
teebo Messages postés 33570 Statut Modérateur 1 793
 
Sinon si c'est un id, je suppose qu'elle est unique, si c'est le cas:
SELECT * FROM table ORDER BY id DESC limit 1; ;

Tu me dis lequel marche :o)
Sinon je devrais me replonger dans ma doc :o)

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0
Utilisateur anonyme
 
SELECT * FROM table ORDER BY id DESC limit 0,1; plutot, non ?

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
flokocha Messages postés 1519 Statut Membre 281
 
Merci beaucoup pour toutes ses réponses, je n'en attendais pas tant, me voilà comblé! :)
Je vais essayer la dernière qui me semble la plus judicieuse et à laquelle je n'avais pas pensé (comme quoi quand on est bloqué une heure sur un pauvre truc on voit plus rien d'autre lol).
Encore une fois merci beaucoup à vous 3, sebsauvage, teebo et kalamit.
0
flokocha Messages postés 1519 Statut Membre 281
 
Petite précision: j'avais déjà essayé les solutions des réponses 3 et 5 mais elles ne fonctionnaient pas non plus.
0