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

  FORUM HardWare.fr
  Programmation
  PHP

  Besoin d'aide pour un SELECT multitables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour un SELECT multitables

n°2096737
TheGotus
Posté le 22-08-2011 à 16:50:03  profilanswer
 

Bonjour,
 
Je sollicite votre aide car cela fais plusieurs jour que j'essaye de faire quelque chose en vain.
 
Je m'explique, je voudrai faire un fonction qui determine le nombre de membres actifs qui n'on pas de parrain et qui ont fais un minimum de 10 clics.
Pour cela je doit séléctionner les utilisateurs qui ont le champ "Parrain" vide dans la table "User" et qui apparraissent au moins 10 fois dans la table "Clic" puis compter le nombre de résultats.
 
Seulement, je sais ce que je veux mais je ne sais pas le traduire en PHP.
 
Merci d'avance pour votre aide
 
Alexis


Message édité par TheGotus le 22-08-2011 à 16:50:49
mood
Publicité
Posté le 22-08-2011 à 16:50:03  profilanswer
 

n°2096763
CyberDenix
Posté le 22-08-2011 à 18:34:16  profilanswer
 

Ton problème est un problème de SQL, non de PHP.
 
Passons, décris-nous le contenu de tes tables
(en SQL : DESCRIBE ma_table)


---------------
Directeur Technique (CTO)
n°2096769
TheGotus
Posté le 22-08-2011 à 19:42:35  profilanswer
 

J'ai indiqué dans mon premier post les table concernées mais ce que je cherche c'est comment le traduire en SQL

n°2096839
deliriumtr​emens
sic transit intestinal...
Posté le 23-08-2011 à 09:35:46  profilanswer
 

Les tables c'est bien, les champs des tables ce serait un poil plus facile...
 
De plus, il serait pas mal de savoir quel SGBD tu utilises, tant qu'à faire.
 
Une requête pas trop réfléchie donnerait ça.
 

Code :
  1. select count(*) from (
  2.     select null from user u
  3.     inner join clic c on c.user_id = u.id
  4.     where u.parrain is null
  5.     group by u.id
  6.     having count(*) >=10)

Message cité 1 fois
Message édité par deliriumtremens le 23-08-2011 à 09:40:44
n°2097125
MEI
|DarthPingoo(tm)|
Posté le 24-08-2011 à 10:41:17  profilanswer
 

deliriumtremens a écrit :

Les tables c'est bien, les champs des tables ce serait un poil plus facile...
 
De plus, il serait pas mal de savoir quel SGBD tu utilises, tant qu'à faire.
 
Une requête pas trop réfléchie donnerait ça.
 

Code :
  1. select count(*) from (
  2.     select null from user u
  3.     inner join clic c on c.user_id = u.id
  4.     where u.parrain is null
  5.     group by u.id
  6.     having count(*) >=10)



 
On doit pouvoir aussi s'en sortir sans jointure avec un truc de ce genre :
(a voir ce qui en pratique est le plus perf)

Code :
  1. SELECT
  2.    U.*
  3. FROM
  4.    USER U
  5. WHERE
  6.    U.ID_USER IN (
  7.        SELECT
  8.            C.ID_USER
  9.        FROM
  10.            COUNT C
  11.        GROUP BY
  12.            C.ID_USER
  13.        HAVING
  14.            count(C.ID_USER) >= 10
  15.    ) AND
  16.    U.ID_PARRAIN IS NULL;


 
Ca ne fonctionne sans doute pas directement dans certains SGBD. Genre Oracle qui devrait vouloir avoir le critère du having aussi dans le select, et donc impossant un niveau de select en plus.


Message édité par MEI le 24-08-2011 à 10:41:32

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Besoin d'aide pour un SELECT multitables

 

Sujets relatifs
EXCEL besoin d'aide pour graphique SVP [resolut]Aide pour compilation Webpart Sharepoint 2010
Besoin d'aide logiciel VB.net (pour étiquettes d'adresses postales)Meilleur logiciel pour création site Web
Aide pour Google Maps[Résolu] [debutant] aide javascript
Faire un Flux RSS sur mon site - demande d'aideAide contre Bapteme Porsche
Besoin d'aide pour une requete MySQL un peu spéciale (SELECT) 
Plus de sujets relatifs à : Besoin d'aide pour un SELECT multitables


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