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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Probleme tout con avec 2 ID

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Probleme tout con avec 2 ID

n°1321297
ParadoX
Posté le 08-03-2006 à 20:07:19  profilanswer
 

Bonjour,  
 
Un pote en génie electronique m'a demandé de l'aider ds son exo SQL, mais ... je ne me souviens pas vraiment de mes cours de l'année derniere, et n'ayant que peu pratiqué, je me retoruve coincé.  
 
C'est tout con, pourtant:
2 tableaux pour la gestion d'une bibliothèque:
 
id / nom/ prenom / sexe
id / idliv
 
Il s'agit d'afficher la liste (nom,prenom) du ou des individus ayant le plus de livres empruntés
On fait ça avec un sub-select, ou un ou plusieurs AND dans le WHERE ?
 
'me rappelle plus :sweat:


Message édité par ParadoX le 08-03-2006 à 20:07:41

---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
mood
Publicité
Posté le 08-03-2006 à 20:07:19  profilanswer
 

n°1321315
Beegee
Posté le 08-03-2006 à 20:36:09  profilanswer
 

Code :
  1. select *
  2. from individu
  3. where id in
  4. (select id
  5. from individu_a_livre
  6. group by id
  7. having count(*) =
  8. (select max(nombre_de_livres)
  9.   from (select count(*) as nombre_de_livres
  10.         from individu_a_livre
  11.         group by id));


 
Maintenant, avec des versions récentes des SGBD, on peut utiliser des fonctions analytiques permettant de pas mal simplifier ... mais en pur SQL, la solution ci-dessus devrait marcher.


Message édité par Beegee le 08-03-2006 à 22:18:40
n°1321346
sub1
Posté le 08-03-2006 à 21:15:37  profilanswer
 

Hello,
 
moi, à vue de nez, je dirai que un count avec jointure et un order devarit suffire sans avoir besoin d'imbriquer sur 3 niveaux.

n°1321350
ParadoX
Posté le 08-03-2006 à 21:21:34  profilanswer
 

Hm merci à vous 2, par contre les "jointures" j'ai jamais fait ça ... 'fin jvais chercher :)


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1321429
Beegee
Posté le 08-03-2006 à 22:19:22  profilanswer
 

J'ai simplifié la requête, y avait une jointure inutile ...
 
sub1, si tu as une façon plus simple de faire, je suis partant :)

n°1321507
sub1
Posté le 09-03-2006 à 00:52:44  profilanswer
 

Beegee a écrit :

sub1, si tu as une façon plus simple de faire, je suis partant :)


Hello,  
comme ca ?
 

Code :
  1. SELECT ind.nom, ind.prenom, count( il.idliv ) AS cnt
  2. FROM individu_a_livre AS il, individu AS ind
  3. WHERE il.id = ind.id
  4. GROUP BY ind.id
  5. ORDER BY cnt DESC


 
ca marche sur un test sous mysql 5.


Message édité par sub1 le 09-03-2006 à 00:53:43
n°1321587
Beegee
Posté le 09-03-2006 à 09:53:50  profilanswer
 

Ce n'est pas du SQL standard.
mySql permet de sélectionner des champs dans un group by qui ne devraient pas pouvoir l'être ... (normalement il faut utiliser des fonctions de groupage : SUM, COUNT, etc.).
 
De plus, tu ne récupères pas uniquement les infos qui t'intéressent, mais les infos pour tous les individus, donc il te faut mettre de la logique dans le script lançant la requête ...
 
Et enfin, je suis pas certain du comportement de mySql quand on sélectionne des champs autres que la clé de groupement, sans utiliser de fontions SUM / COUNT ... Il sélectionne une ligne parmi toutes ?


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

  [SQL] Probleme tout con avec 2 ID

 

Sujets relatifs
problème avec mkdir[SQL] passer une variable dans la clause FROM
[VBA] Excel : problème avec la fonction PrintExporter Table SQL avec ID vers .txt ou autre
[MySQL] Requete SQL pour supprimer des enregistrements identiquesTomcat5 / Axis2 : Problème avec le security manager.
[XQuery]Problème de requête[RESOLU] probleme avec le lower_bound d'un vector de classes
[Batch File] Problème d'espaceproblème de condition et de timing du coup...
Plus de sujets relatifs à : [SQL] Probleme tout con avec 2 ID


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