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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Retourner le dernier element d'une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Retourner le dernier element d'une table

n°805746
esox_ch
Posté le 25-07-2004 à 17:11:08  profilanswer
 

Bonjour ,  
 
j'ai une table contenant 3 champs :  
 
ID (int autoincremanté)
Login (varchar)
Groupe (int)
 
Je voudrais pouvoir sortir quel est le dernier login de la liste ayant comme groupe une valeur précise, et ceci en 1 seule requette mysql et sans utiliser "de truc" php pour prendre seulement la derniere valeur.
 
J'espere de m'etre bien exprimé, merci d'avance
 
Esox

mood
Publicité
Posté le 25-07-2004 à 17:11:08  profilanswer
 

n°805747
gizmo
Posté le 25-07-2004 à 17:18:30  profilanswer
 

SELECT login FROM table
WHERE groupe = variable
ORDER BY id DESC
LIMIT 1

n°805753
esox_ch
Posté le 25-07-2004 à 17:28:45  profilanswer
 

OOps je me suis effectivement mal exprimé ...mea culpa... Il faudrais que je puisse par exemple savoir quel est le dernier login pour groupe 1 et quel est le dernier login pour groupe 2 ... En gros afficher la liste du tout les dernier login pour chaque group ...

n°805783
Profil sup​primé
Posté le 25-07-2004 à 18:44:55  answer
 

select max(id), login from maTable where and group="group1" ??
 
pas sur, et le flemme de verifier, me sert jamais des max [:itm]


Message édité par Profil supprimé le 25-07-2004 à 18:45:27
n°805784
esox_ch
Posté le 25-07-2004 à 18:45:35  profilanswer
 

Non comme ca tu obtiens le max ID et le 1er login de ta table ki satisfasse a la condition du groupe ... Parcontre j'imagine que c impossible de mettre le max() dans les where clauses?


Message édité par esox_ch le 25-07-2004 à 18:47:04
n°805796
esox_ch
Posté le 25-07-2004 à 19:12:38  profilanswer
 

SELECT login  
FROM matable
GROUP BY 'group'
HAVING MAX( id )
 
Je n'ai reçu aucune erreur mais aucune donnée non plus ...  :??:  :??:  :??:

n°805867
thecoin
Chasseur de chasseur de canard
Posté le 25-07-2004 à 21:14:47  profilanswer
 

Sous Oracle:
 
select id,login
from matable
where id in (select max(id) from matable group by group)


Message édité par thecoin le 25-07-2004 à 21:15:14
n°805888
esox_ch
Posté le 25-07-2004 à 21:55:42  profilanswer
 

Je suis sous Mysql, mais en me disant ca tu m'a rappellé que j'avais vu une structure semblable (2 requettes embriquées) sur le site de mysql ... je v aller voir si je retrouve ... Merci bc en tt cas

n°805943
gizmo
Posté le 25-07-2004 à 23:43:22  profilanswer
 

soit tu es avec MySQL 4.0+ et alors la requète de thecoin devrait fonctionner, soit tu peux essayer qqch comme ça
 
SELECT DISTINCT ON ("group" ) login
FROM table
ORDER BY "group",id DESC

n°805944
esox_ch
Posté le 25-07-2004 à 23:44:30  profilanswer
 

Ok merci a vous 2, je vais voir tout ca , je vous redis demain :D merci en tout cas

mood
Publicité
Posté le 25-07-2004 à 23:44:30  profilanswer
 

n°805965
esox_ch
Posté le 26-07-2004 à 00:31:25  profilanswer
 

Juste ... j'ai trouver ca sur www.mysql.com a propos des subqueries de thecoin : Starting with MySQL 4.1 . Hors le 4.1 est encore en phase beta ==> pas chez mon hebergeur ... Je v essayer de voir comme tu dis toi gizmo

n°805975
Fabien
Vive la super 5 !
Posté le 26-07-2004 à 01:26:17  profilanswer
 

esox_ch a écrit :

SELECT login  
FROM matable
GROUP BY 'group'
HAVING MAX( id )
 
Je n'ai reçu aucune erreur mais aucune donnée non plus ...  :??:  :??:  :??:

c'est quoi 'group' ?  
 
je crois plutot que c'est group by login,group.


Message édité par Fabien le 26-07-2004 à 01:27:13

---------------
Découvre le HFRcoin ✈ - smilies
n°806043
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-07-2004 à 09:54:02  profilanswer
 

Fabien a écrit :

c'est quoi 'group' ?  
 
je crois plutot que c'est group by login,group.


 
Tu ne pourras pas t'en sortir avec un HAVING. La confusion est souvent faire, mais le HAVING ne sert malheureusement pas à ça.
 
Tu utiliseras HAVING plutôt pour ce genre de choses :
 
Retrouver le nombre d'éléments de "n" qui sont présents plus de x fois dans la table :


select count(*) nbDev, cnvfac
from dev
group by cnvfac
having count(*) > 1

n°806898
esox_ch
Posté le 26-07-2004 à 19:28:27  profilanswer
 

Bon le probleme reste appremment entier ... Mon hebergeur tourne encore sur la version 4.0+ de mysql (car la 4.1 est encore beta) et donc les subquery sont exclues :( , et le DISTINCT ON n'est pas reconnu par mysql .. Il connais seulement le DISTINCT .. Qqn a une idée de comment on peut arrenger ca?

n°806929
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-07-2004 à 20:14:35  profilanswer
 

Deux requêtes de suite... Guère d'autre choix.

n°806941
jagstang
Pa Capona ಠ_ಠ
Posté le 26-07-2004 à 20:26:23  profilanswer
 

esox_ch a écrit :

Bon le probleme reste appremment entier ... Mon hebergeur tourne encore sur la version 4.0+ de mysql (car la 4.1 est encore beta) et donc les subquery sont exclues :( , et le DISTINCT ON n'est pas reconnu par mysql .. Il connais seulement le DISTINCT .. Qqn a une idée de comment on peut arrenger ca?


 
ça peut t'aider...
 
http://www.nexen.net/docs/mysql/an [...] ueries.php


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°806942
esox_ch
Posté le 26-07-2004 à 20:27:19  profilanswer
 

Le probleme de 2 rekettes de suite est que, l'exemple que j'ai demandé est enfait une "simplification" du probleme qui m'occupe ... Faire + qu'une requette signifierais en faire beaucoup plus que 2 ... J'ai lu dans mysql qu'il y a presque toujour un moyen de convertir une requette avec subquery en 1 requette avec un JOIN, mais j'y arrive pas trop en ce moment :( .. Bon je v pas me laisser me decourrager quand meme, je v perseverer... je vous dirais si j'arive a qqch :) En tt cas merci a tous

n°806943
esox_ch
Posté le 26-07-2004 à 20:28:10  profilanswer
 


 
Merci Jagstang , dans ma reponse précédente je parle justement de cet article (enfin je l'avais trouvé en anglais sur mysql.com)

n°806946
jagstang
Pa Capona ಠ_ಠ
Posté le 26-07-2004 à 20:29:30  profilanswer
 

testé. ça fontctionne à merveille.  


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°806969
esox_ch
Posté le 26-07-2004 à 20:46:58  profilanswer
 

Je suis entrain de me relire les pages sur JOIN, c'est vrai que j'ai jamais utilisé cette bete la ... Apperemment mon livre n'est pas aussi complet que je le croyais :p

n°807115
jagstang
Pa Capona ಠ_ಠ
Posté le 26-07-2004 à 23:45:48  profilanswer
 

il existe des variantes de left join / inner join avec *= et =* plus agréables à utiliser


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°807116
esox_ch
Posté le 26-07-2004 à 23:47:51  profilanswer
 

Merci ... je vais voir tout ca sur mysql.com et si jamais c'est pas assez je chercherai des tuto ... En tout cas merci beaucoup

n°807128
jagstang
Pa Capona ಠ_ಠ
Posté le 26-07-2004 à 23:56:04  profilanswer
 

je crois pas que MySQL supporte cela. mais Transact SQL


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°807156
esox_ch
Posté le 27-07-2004 à 00:14:30  profilanswer
 

Supporte quoi? Le *= ?

n°807157
jagstang
Pa Capona ಠ_ಠ
Posté le 27-07-2004 à 00:15:36  profilanswer
 

oui


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°807186
dividee
Posté le 27-07-2004 à 02:09:51  profilanswer
 

ceci fonctionne, en tout cas en Access:


SELECT t1.login
FROM matable AS t1 LEFT OUTER JOIN matable AS t2
ON t1.group = t2.group AND t1.id < t2.id
WHERE t2.id IS NULL


Message édité par dividee le 27-07-2004 à 02:10:16
mood
Publicité
Posté le   profilanswer
 


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

  Retourner le dernier element d'une table

 

Sujets relatifs
Pointeur sur un élément d'un std::vector[MYSQL] Suppression d'enregistrements avec une jointure de table
replace seulement sur le premier élémentProblème modification de taille du champ d'une table en postgresQL.
[SQL] cmt supprimer/modifier un enregistrement d'un table ?[VBA Excel] récupérer des données de table Access dans Excel en VBA
[VBA ACCESS] Cherche a introduire une image dans une table[SQL SERVER] Comparaison de table [Presque resolu]
[Access] Sauvegarder les résultats d'une requete dans une table[swing] - creation d'element
Plus de sujets relatifs à : Retourner le dernier element d'une table


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