Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2006, 16h04   #1
Membre chevronné
 
Avatar de Sheriff
 
Raoul TALLA
Inscription : octobre 2004
Messages : 607
Détails du profil
Informations personnelles :
Nom : Raoul TALLA

Informations forums :
Inscription : octobre 2004
Messages : 607
Points : 628
Points : 628
Envoyer un message via MSN à Sheriff Envoyer un message via Yahoo à Sheriff Envoyer un message via Skype™ à Sheriff
Par défaut requete impliquant deux tables

bonjour à tous !
j'ai un problème de débutant - je ne maitrise pas encore le language.
j'ai deux tables
une table 'clients' avec tout ce que celà peut comporter (id_client, nom, etc.)
une table 'commandes' avec notamment (id_commande, id_client, etc.)
j'aimerais afficher la liste des clients et mettre le nombre de commandes de chaque client à côté
je sélectionne la liste des clients, ensuite, je récupère chaque client (son id) et je recherche dans les commandes celles qui portent l'id dudit client ; ensuite le mysql_num_rows() me donne le nombre de commandes.
mon problème est que j'aimerais effectuer un tri en fonction du nombre de commandes passées par chaque client...
j'ai essayé plein de petites choses que je savais incongrues ; ça n'a biensur pas fonctionné...
poutant mon petit doigt me dit qu'on peut effectuer celà à l'aide d'une requête unique...
help, please
@+
__________________
Que votre situation soit bonne ou mauvaise, cela va changer...
Sheriff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h20   #2
Membre éclairé
 
Avatar de supernova
 
Développeur informatique
Inscription : juillet 2005
Messages : 443
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2005
Messages : 443
Points : 359
Points : 359
Salut,

Tu as un début de requête à nous montrer .. utilises tu INNER JOIN pour joindre tes tables ??
__________________
Il est difficile d’attraper un chat noir dans une pièce sombre. Surtout lorsqu'il n’y est pas.
supernova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h30   #3
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt.

D´apres ce que j´ai compris, un truc du genre:

Code :
1
2
3
4
5
6
7
 
 
SELECT cl.id_clients,count(co.id_clients) AS ttt FROM clients cl 
LEFT JOIN commandes  co ON
(  cl.id_clients=co.id_clients) 
GROUP BY cl.id_clients 
ORDER BY ttt DESC;
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 17h54   #4
Membre éprouvé
 
Inscription : février 2003
Messages : 547
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 547
Points : 486
Points : 486
Bonjour

Vous pouvez créer une Vue (une table virtuelle) du genre
Create view NBCommande as
Select count(*), id_client from Commandes group by id_client

Cette vur fonctionne exactement come une table et vous donne le nombre de commande pour 1 client.

A partir de la, vous pouvez lier la vue a votre table client avec un joint
Tardiff Jean-François est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2006, 16h07   #5
Membre chevronné
 
Avatar de Sheriff
 
Raoul TALLA
Inscription : octobre 2004
Messages : 607
Détails du profil
Informations personnelles :
Nom : Raoul TALLA

Informations forums :
Inscription : octobre 2004
Messages : 607
Points : 628
Points : 628
Envoyer un message via MSN à Sheriff Envoyer un message via Yahoo à Sheriff Envoyer un message via Skype™ à Sheriff
salut !
merci beaucoup pour vos proposition : je teste et je vous tiens informés !
@+
__________________
Que votre situation soit bonne ou mauvaise, cela va changer...
Sheriff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h28.


 
 
 
 
Partenaires

Hébergement Web