Voici la structure de mes tables:
 
#
# Structure de la table `alliance_desc`
#
 
CREATE TABLE alliance_desc (
  id int(11) NOT NULL auto_increment,
  nom varchar(30) NOT NULL default '',
[...]
  recrutement char(1) NOT NULL default '1',
  PRIMARY KEY  (id),
  UNIQUE KEY nom (nom)
) TYPE=MyISAM COMMENT='Définition des alliances';
# --------------------------------------------------------
 
#
# Structure de la table `alliance_membres`
#
 
CREATE TABLE alliance_membres (
  id int(11) NOT NULL auto_increment,
  id_alliance int(11) NOT NULL default '0',
  id_village int(11) NOT NULL default '0',
  id_membre int(11) NOT NULL default '0',
[...]
  PRIMARY KEY  (id),
  UNIQUE KEY id_village (id_village)
) TYPE=MyISAM ;
 
 
Un peu d'explication:
La requete ci dessous sert a afficher la liste des alliances avec des informations tirer des deux tables: alliance_desc et alliance_membres.
De alliance_membres j'aimerais tirer le nombre de village appartenant à l'alliance [COUNT(alliance_membres.id)] mais aussi le nombre de membre appartenant à l'alliance étant donné que chaque membre peut avoir X village integrer dans une alliance.
 
Voici ma requete actuellement:
Elle ne gere pas le nombre de membre.
 
SELECT alliance_desc.nom, alliance_desc.id, COUNT(alliance_membres.id) AS nb_village
FROM alliance_desc
LEFT OUTER JOIN alliance_membres ON alliance_membres.id_alliance=alliance_desc.id
GROUP BY alliance_desc.id
ORDER BY '$ordredesc' DESC
LIMIT $limit,20";
 
 
Exemple concret:
Nous sommes dans la table alliance_membres.
Voici quelques enregistrement:
 
id, id_alliance, id_village, id_membre
1      1           2            5
1      1           9            5
1      1           5            5
1      1           1            2
1      1           7            2
 
Si vous m'avez suivi, j'aimerais donc obtenir le nombre de membre de deux en effectuant ma requete.
 
Je me demande si il y'a pas du DISTINCT qui traine ? En tout cas je n'arrive pas à l'integrer pour l'instant.
 
 
Merci d'avance.
 
Message édité par smilm le 17-07-2004 à 20:01:42