2009-02-07 6 views
0

J'ai deux tables, qui sont jointes d'une manière ou d'une autre. J'ai passé la dernière heure à googler, ne trouvant aucune réponse concrète qui a fonctionné dans mon cas. Le cas est le suivant: la table 1 s'appelle Clients et la table 2 s'appelle Projets.Affichage des données et comptage à partir de plusieurs bases de données dans MySQL

Je dois énumérer tous les noms des clients, suivis du nombre de projets liés à ce projet et du titre du projet.

Par exemple:

client 1 (2 projets)
- Projet 1 titre
- Projet 2 Titre

Client 2 (0 projets)

client 3 (1 projet)
- Projet 1 titre

Comment est-ce faisable, dans le plus simple d moyen le plus facile?

+0

Pouvez-vous publier le schéma de la table? – Zoredache

+0

Tableau: client client.id - identifiant unique de client.name - nom du client client * Tableau:. Projet project.id - identifiant unique project.client - identifiant client de project.title - Titre du projet projet.* client.id et project.client doivent correspondre l'un à l'autre. –

Répondre

0

Il y a fondamentalement trois parties à votre question.

  1. Rejoindre les tables
  2. Regroupement par la sortie projet
  3. En comptant les projets par client

Le premier est facile. Cela implique de trouver le champ ID client dans chaque table et d'utiliser une clause JOIN spécifiant les deux colonnes (une dans chaque table) à corréler. Cela vous donnera une ligne par projet qui contient également des informations pour le client correspondant. C'est presque ce que vous demandez.

Il est difficile de mettre la deuxième et la troisième ensemble dans la même requête et pas une que je recommanderais. Si vous allez mettre cela dans un programme, vous pouvez facilement post-traiter le résultat de la requête. Pour ce faire, vous devez ajouter une clause ORDER BY pour spécifier le tri par client. Cela mettra tous les projets pour chaque client dans les rangées suivantes.

Vous pouvez maintenant écrire une boucle pour traiter la sortie. Comme il le fait à, il doit surveiller deux choses:

  1. lorsque l'ID client change
  2. compter les projets

En faisant cela, il peut facilement afficher un « en-tête de groupe » pour chaque client, et un "pied de groupe" pour le nombre de projets.

0

Vous ne dites rien sur votre application, mais je vous recommande de séparer l'interrogation de l'affichage. Laissez SQL obtenir les données pour vous, puis laissez autre chose faire la présentation.

Questions connexes