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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Selection aléatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection aléatoire

n°534699
Ayuget
R.oger
Posté le 08-10-2003 à 19:36:09  profilanswer
 

Hello, j'ai un petit problème avec une requête SQL que je n'arrive pas a faire.
Quelques explications:
 
J'ai une première table "defprod" avec comme champs:

Code :
  1. id | nom | exemplaires


 
et une seconde table "produits" avec comme champs:

Code :
  1. id | prod_id | client_id


Les deux tables sont reliées par le champ "prod_id". En gros j'ai une table avec les caractéristiques des produits (table defprod) et une autre avec les produits associés a des clients.
 
Ce que je voudrais faire c'est sélectionner aléatoirement un id de la table "defprod" si et seulement si le nombre de produits correspondants a ce type de produit (prod_id) dans la table "produits" est inférieur aux nombre situé dans le champ "exemplaires".
 
J'ai tenté :

Code :
  1. SELECT RAND(d.id)
  2. FROM defprod d, produits p
  3. WHERE d.id=p.type_id AND d.exemplaires>COUNT(p.id)


Mais j'ai le droit à:
"ERREUR Utilisation invalide de la clause GROUP"
J'oublie de préciser que je suis relativement débutant et que cette requête un peu particulière ne doit pas être fondamentalement difficile a faire.
PS: J'ai cherché dans la Doc Mysql, je n'y ai rien trouvé qui pourrait arranger mon problème
 
Merci pour votre aide  :hello:

mood
Publicité
Posté le 08-10-2003 à 19:36:09  profilanswer
 

n°534932
Ayuget
R.oger
Posté le 08-10-2003 à 23:17:04  profilanswer
 

up :D

n°535033
souk
Tourist
Posté le 09-10-2003 à 10:04:20  profilanswer
 

tu peux pas generer un nombre aleatoire a part et l'utiliser dans une condition WHERE id = <ton_nombre_au_pif> ?


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
n°535150
Ayuget
R.oger
Posté le 09-10-2003 à 12:45:48  profilanswer
 

souk a écrit :

tu peux pas generer un nombre aleatoire a part et l'utiliser dans une condition WHERE id = <ton_nombre_au_pif> ?
 


le problème n'est pas la :D

n°535152
souk
Tourist
Posté le 09-10-2003 à 12:48:46  profilanswer
 

Ayuget a écrit :


le problème n'est pas la :D
 


 
promis, la prochaine fois j'apprends a lire :whistle:


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
n°535167
jagstang
Pa Capona ಠ_ಠ
Posté le 09-10-2003 à 13:11:02  profilanswer
 

Attention :
 
Count ne renvoie qu'un seule valeur, et ne peux donc pas être comparée à un ensemble de valeur
 
Essaie comme ça  

Code :
  1. SELECT RAND(d.id)
  2.   FROM defprod d, produits p
  3.   WHERE d.id=p.type_id
  4.   AND COUNT(d.exemplaires) > COUNT(p.id)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°535171
jagstang
Pa Capona ಠ_ಠ
Posté le 09-10-2003 à 13:17:09  profilanswer
 

http://www.mysql.com/doc/en/GROUP-BY-Functions.html


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°535176
Ayuget
R.oger
Posté le 09-10-2003 à 13:20:59  profilanswer
 

merci pour ton aide :jap:
 
malheureusement ta requete ne fonctionne pas non plus :( (toujours le même message d'erreur)


Message édité par Ayuget le 09-10-2003 à 13:21:13
n°535187
jagstang
Pa Capona ಠ_ಠ
Posté le 09-10-2003 à 14:00:21  profilanswer
 

et pourtant c'est dans ce sens qu'il faut chercher... car Count est une fonction d'aggrégation


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°535410
Ayuget
R.oger
Posté le 09-10-2003 à 17:42:20  profilanswer
 

JagStang a écrit :

et pourtant c'est dans ce sens qu'il faut chercher... car Count est une fonction d'aggrégation


franchement la je vois pas :(
 
HELP  :sweat:

mood
Publicité
Posté le 09-10-2003 à 17:42:20  profilanswer
 

n°535792
Ayuget
R.oger
Posté le 10-10-2003 à 07:00:53  profilanswer
 

dernier up du désespoir :sweat:

n°535794
jagstang
Pa Capona ಠ_ಠ
Posté le 10-10-2003 à 07:57:57  profilanswer
 

Code :
  1. SELECT RAND(d.id)
  2.   FROM defprod d, produits p
  3.   WHERE d.id=p.type_id
  4.   AND d.exemplaires > p.id


 
Si ça joue pas, envoie le script de génération de ta bdd que je puisse tester


Message édité par jagstang le 10-10-2003 à 07:58:31

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°536541
Ayuget
R.oger
Posté le 10-10-2003 à 19:50:51  profilanswer
 

ben apparament, sans les requetes imbriquées, c'est pas possible (et je suis en mysql 3.23 :( )
J'pense que j'vais etre obligé des faire un truc avec des tableaux mais c'est beaucoup plus lourd :(


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

  Selection aléatoire

 

Sujets relatifs
[HTML][PHP] Form input=file et sélection de répertoire source[HTML/JS] Selection auto dans un select dynamique
redirection par une boite de selection.. problème avec "_blank"[PHP] uri aléatoire dans du texte
[VB - Exel] ...l'indice n'appartient pas a la selection...sortir une coordonné aleatoire
Selection de cellules non vides (Graph)[Java][Swing] Double événement de sélection de valeur
Pb avec un formulaire à sélection multiple(ASP) Selection aléatoire ?
Plus de sujets relatifs à : Selection aléatoire


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