par
VaN » 22 janv. 2008, 18:58
Bonjour,
J'ai une table USERS, dans laquelle je stocke les utilisateurs enregistrés sur le site. Dans cette table, j'ai un champ user_parrain_id, qui est soit égal à 0 si l'utilisateur s'est inscrit sans l'aide d'un parrain, soit égal au user_id de son parrain.
Sur une page, j'aimerai afficher la liste des utilisateurs, ainsi que leur nombre de filleuls.
Voici ma requête :
"SELECT user_id, user_login, user_level, user_mail, COUNT(user_id) as Filleuls
FROM ".$prefixe."users
INNER JOIN ".$prefixe."users ON user_id = user_parrain_id
GROUP BY user_id";
Je reçois l'erreur suivante :
Erreur : Table/alias: 'users' non unique
J'imagine que j'utilise mal le INNER JOIN. Quelqu'un pourrait-il me dire où est l'erreur ?
--
-- Structure de la table `users`
--
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` text character set latin1 collate latin1_general_cs NOT NULL,
`user_pass` text character set latin1 collate latin1_general_cs NOT NULL,
`user_mail` text NOT NULL,
`user_level` tinyint(4) NOT NULL,
`user_activated` tinyint(4) NOT NULL,
`user_activation_key` text character set latin1 collate latin1_general_cs NOT NULL,
`user_logged` tinyint(4) NOT NULL,
`user_points` int(11) NOT NULL,
`user_parrain_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
Bonjour,
J'ai une table USERS, dans laquelle je stocke les utilisateurs enregistrés sur le site. Dans cette table, j'ai un champ user_parrain_id, qui est soit égal à 0 si l'utilisateur s'est inscrit sans l'aide d'un parrain, soit égal au user_id de son parrain.
Sur une page, j'aimerai afficher la liste des utilisateurs, ainsi que leur nombre de filleuls.
Voici ma requête :
[php]"SELECT user_id, user_login, user_level, user_mail, COUNT(user_id) as Filleuls
FROM ".$prefixe."users
INNER JOIN ".$prefixe."users ON user_id = user_parrain_id
GROUP BY user_id";[/php]
Je reçois l'erreur suivante :
[quote]Erreur : Table/alias: 'users' non unique[/quote]
J'imagine que j'utilise mal le INNER JOIN. Quelqu'un pourrait-il me dire où est l'erreur ?
[quote]--
-- Structure de la table `users`
--
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` text character set latin1 collate latin1_general_cs NOT NULL,
`user_pass` text character set latin1 collate latin1_general_cs NOT NULL,
`user_mail` text NOT NULL,
`user_level` tinyint(4) NOT NULL,
`user_activated` tinyint(4) NOT NULL,
`user_activation_key` text character set latin1 collate latin1_general_cs NOT NULL,
`user_logged` tinyint(4) NOT NULL,
`user_points` int(11) NOT NULL,
`user_parrain_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;[/quote]