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