Problème SQL

Fermé
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 - 12 mars 2004 à 10:16
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 - 12 mars 2004 à 20:05
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
12 mars 2004 à 10:39
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 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
12 mars 2004 à 10:57
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
12 mars 2004 à 11:00
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
12 mars 2004 à 11:01
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
12 mars 2004 à 11:06
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
12 mars 2004 à 11:11
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
12 mars 2004 à 11:55
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 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
12 mars 2004 à 20:02
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 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
12 mars 2004 à 20:05
Petite précision: j'avais déjà essayé les solutions des réponses 3 et 5 mais elles ne fonctionnaient pas non plus.
0