{MySQL} probleme requete
Résolu/Fermé
Sbeuh
Messages postés
9
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
11 octobre 2010
-
8 sept. 2009 à 00:50
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 - 9 sept. 2009 à 13:38
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 - 9 sept. 2009 à 13:38
A voir également:
- {MySQL} probleme requete
- Mysql community server - Télécharger - Bases de données
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
- Mysql gratuit ou payant - Forum MySQL
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Requête sql pix - Forum Python
9 réponses
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
8 sept. 2009 à 07:41
8 sept. 2009 à 07:41
hello j'ai pas compris là !
Tu peux redéfinir ton besoin :
et je voudrais recuperer le nbre de fois premier et deuxieme pour chaque joueur pour effectuer le classement ???
Et me mettre la sctructre complete de tes tables. Il faut que les clés soient justes sinon ya va coincer pour la ou les jointures.
Tu peux redéfinir ton besoin :
et je voudrais recuperer le nbre de fois premier et deuxieme pour chaque joueur pour effectuer le classement ???
Et me mettre la sctructre complete de tes tables. Il faut que les clés soient justes sinon ya va coincer pour la ou les jointures.
Sbeuh
Messages postés
9
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
11 octobre 2010
8 sept. 2009 à 07:56
8 sept. 2009 à 07:56
je veux faire le classemet d'un championnat de poker pour ca j'ai crée 3 tables
user championnat et journee
--
-- Structure de la table `championnat`
--
CREATE TABLE `championnat` (
`ID_CHAMP` int(11) NOT NULL auto_increment,
`NOM_CHAMP` varchar(25) default NULL,
PRIMARY KEY (`ID_CHAMP`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `journee`
--
CREATE TABLE `journee` (
`ID_JOURNEE` int(11) NOT NULL auto_increment,
`ID_CHAMP` int(11) NOT NULL,
`ID_USER` int(11) NOT NULL,
`USE_ID_USER` int(11) NOT NULL,
`DATE` date default NULL,
PRIMARY KEY (`ID_JOURNEE`),
KEY `FK_CORRESPONDRE` (`ID_CHAMP`),
KEY `FK_PREMIER` (`ID_USER`),
KEY `FK_SECOND` (`USE_ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `user`
--
CREATE TABLE `user` (
`ID_USER` int(11) NOT NULL auto_increment,
`LOGIN_USER` varchar(20) default NULL,
`PASS_USER` varchar(32) default NULL,
PRIMARY KEY (`ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `journee`
--
ALTER TABLE `journee`
ADD CONSTRAINT `FK_CORRESPONDRE` FOREIGN KEY (`ID_CHAMP`) REFERENCES `championnat` (`ID_CHAMP`),
ADD CONSTRAINT `FK_PREMIER` FOREIGN KEY (`ID_USER`) REFERENCES `user` (`ID_USER`),
ADD CONSTRAINT `FK_SECOND` FOREIGN KEY (`USE_ID_USER`) REFERENCES `user` (`ID_USER`);
dans la table journee id_user correspond au joueur en premiere place et use_is_user carrespond au joueur a la deuxieme place
et donc je cherche a faire une requete pour recuperer le nombre de fois ou le joueur a été en premiere place et en deuxieme place
user championnat et journee
--
-- Structure de la table `championnat`
--
CREATE TABLE `championnat` (
`ID_CHAMP` int(11) NOT NULL auto_increment,
`NOM_CHAMP` varchar(25) default NULL,
PRIMARY KEY (`ID_CHAMP`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `journee`
--
CREATE TABLE `journee` (
`ID_JOURNEE` int(11) NOT NULL auto_increment,
`ID_CHAMP` int(11) NOT NULL,
`ID_USER` int(11) NOT NULL,
`USE_ID_USER` int(11) NOT NULL,
`DATE` date default NULL,
PRIMARY KEY (`ID_JOURNEE`),
KEY `FK_CORRESPONDRE` (`ID_CHAMP`),
KEY `FK_PREMIER` (`ID_USER`),
KEY `FK_SECOND` (`USE_ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `user`
--
CREATE TABLE `user` (
`ID_USER` int(11) NOT NULL auto_increment,
`LOGIN_USER` varchar(20) default NULL,
`PASS_USER` varchar(32) default NULL,
PRIMARY KEY (`ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `journee`
--
ALTER TABLE `journee`
ADD CONSTRAINT `FK_CORRESPONDRE` FOREIGN KEY (`ID_CHAMP`) REFERENCES `championnat` (`ID_CHAMP`),
ADD CONSTRAINT `FK_PREMIER` FOREIGN KEY (`ID_USER`) REFERENCES `user` (`ID_USER`),
ADD CONSTRAINT `FK_SECOND` FOREIGN KEY (`USE_ID_USER`) REFERENCES `user` (`ID_USER`);
dans la table journee id_user correspond au joueur en premiere place et use_is_user carrespond au joueur a la deuxieme place
et donc je cherche a faire une requete pour recuperer le nombre de fois ou le joueur a été en premiere place et en deuxieme place
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
8 sept. 2009 à 08:10
8 sept. 2009 à 08:10
pour l'instant tu ne peux pas savoir, la position du jouer au fur et à mesure des défaites ou des victoires tu ne l'enregistre pas (sauf erreur de ma part).
Si j'ai bien compris la table des user permet d'identifier qui joue, celle des championnats (je ne comprends pas son utilité mais qu'importe), et celle de journée traduit le jour du jeu peut etre mais n'apporte rien de plus à mon sens. On ne sais pas quel score a faire user 2 par exemple, ni combien de flush a t-il fait, ni quelle durée a été le jeu, encore moins combien de fois a t-il été n° 1.
Pour le compter il faut que l'information existe quelque part. Meme en faisant des jointures, je ne vois sur quoi, pour récupérer quoi... !!
Donc ya un souci dans ton s.i
Si j'ai bien compris la table des user permet d'identifier qui joue, celle des championnats (je ne comprends pas son utilité mais qu'importe), et celle de journée traduit le jour du jeu peut etre mais n'apporte rien de plus à mon sens. On ne sais pas quel score a faire user 2 par exemple, ni combien de flush a t-il fait, ni quelle durée a été le jeu, encore moins combien de fois a t-il été n° 1.
Pour le compter il faut que l'information existe quelque part. Meme en faisant des jointures, je ne vois sur quoi, pour récupérer quoi... !!
Donc ya un souci dans ton s.i
Sbeuh
Messages postés
9
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
11 octobre 2010
8 sept. 2009 à 09:04
8 sept. 2009 à 09:04
ma table user identifie chaque joueur
ma table championnat sert juste a donner un nom a la saison
et ma table journee correspond a une journee de championnat dans la quelle j'enregistre le premier(id_user) et le deuxieme(use_id_user)
entre journée et user j'ai deux relations : 1- premier ce qui donne la clé etrangere id_user dans la table journee
et 2- second qui donne la clé etrangere use_id_user
ensuite pour mon classement je le fait en php pas de soucis la dessus
maintenant je suis bien d'accord sur le fait que mon s.i. est mal fait mais je vois pas comment gerer ca autrement
ma table championnat sert juste a donner un nom a la saison
et ma table journee correspond a une journee de championnat dans la quelle j'enregistre le premier(id_user) et le deuxieme(use_id_user)
entre journée et user j'ai deux relations : 1- premier ce qui donne la clé etrangere id_user dans la table journee
et 2- second qui donne la clé etrangere use_id_user
ensuite pour mon classement je le fait en php pas de soucis la dessus
maintenant je suis bien d'accord sur le fait que mon s.i. est mal fait mais je vois pas comment gerer ca autrement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
8 sept. 2009 à 14:49
8 sept. 2009 à 14:49
à ta place, surtout si je veux des comptages justes et fiables je gèrerais direct le classement en base mais pas par php.
Paarce que le résultat de ton calcul tu dois l'avoir en sortie de BD, sans même parler de PHP.
Bref, ta structure est comme elle et dois surement convenir ainsi.
Je comprends pas
pk :
ok -->premier(id_user)
Pas ok pour ça -->deuxieme(use_id_user)
use_id_user est cesé etre la clé étrangère du user dans journée. Alors ça devrait etre pareil comme point d'entrée.
Pk tu parles de 2nd, j'y comprends rien.
J'abandonne j'ai pas le temps de trop me pencher
bonne chance
Paarce que le résultat de ton calcul tu dois l'avoir en sortie de BD, sans même parler de PHP.
Bref, ta structure est comme elle et dois surement convenir ainsi.
Je comprends pas
pk :
ok -->premier(id_user)
Pas ok pour ça -->deuxieme(use_id_user)
use_id_user est cesé etre la clé étrangère du user dans journée. Alors ça devrait etre pareil comme point d'entrée.
Pk tu parles de 2nd, j'y comprends rien.
J'abandonne j'ai pas le temps de trop me pencher
bonne chance
Sbeuh
Messages postés
9
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
11 octobre 2010
9 sept. 2009 à 12:46
9 sept. 2009 à 12:46
merci quand même pour ton aide
2nd n'existe pas je voulais dire deuxieme
en fait qd je fait :
select login_user, count(journee.id_user)
from user join journee
on user.id_user=journee.id_user
group by login_user
je recupere bien le nombre de fois ou chaque joueur a été premier
qd je fais :
select login_user, count(journee.use_id_user)
from user join journee
on user.id_user=journee.use_id_user
group by login_user
je recupere le nombre de fois ou chaque joueur a été deuxieme
ce que je veux c :
select login_user, count(id_user), count(use_id_user)
from.....
mais la du coup j'ai le total de tous les joueurs
je vois pas comment faire ma requete pour avoir sur chaque ligne de resultat login_user - le nombre de fois ou il a été premier - le nombre de fois ou il a été deuxieme
si quelqu'un a une idée
2nd n'existe pas je voulais dire deuxieme
en fait qd je fait :
select login_user, count(journee.id_user)
from user join journee
on user.id_user=journee.id_user
group by login_user
je recupere bien le nombre de fois ou chaque joueur a été premier
qd je fais :
select login_user, count(journee.use_id_user)
from user join journee
on user.id_user=journee.use_id_user
group by login_user
je recupere le nombre de fois ou chaque joueur a été deuxieme
ce que je veux c :
select login_user, count(id_user), count(use_id_user)
from.....
mais la du coup j'ai le total de tous les joueurs
je vois pas comment faire ma requete pour avoir sur chaque ligne de resultat login_user - le nombre de fois ou il a été premier - le nombre de fois ou il a été deuxieme
si quelqu'un a une idée
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 389
9 sept. 2009 à 12:53
9 sept. 2009 à 12:53
Bonjour,
Tu as presque la réponse dans ton dernier post, je pense qu'en utilisant le code suivant, tu devrais avoir ce que tu veux
J'ai pas testé le code, à toi de voir si cela que tu recherches.
A plus
Tu as presque la réponse dans ton dernier post, je pense qu'en utilisant le code suivant, tu devrais avoir ce que tu veux
select login_user, count(journee.id_user), (select count(journee.use_id_user) from journee where login.user.id_user=journee.use_id_user) from user join journee on user.id_user=journee.id_user group by login_user
J'ai pas testé le code, à toi de voir si cela que tu recherches.
A plus
Sbeuh
Messages postés
9
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
11 octobre 2010
9 sept. 2009 à 12:58
9 sept. 2009 à 12:58
trop fort
ca marche c good
merciiii
ca marche c good
merciiii
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 389
9 sept. 2009 à 13:38
9 sept. 2009 à 13:38
Bonjour,
Pas de problème, n'oublie pas de mettre le post comme résolu.
A plus
Pas de problème, n'oublie pas de mettre le post comme résolu.
A plus