probleme requete imbriquée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme requete imbriquée

par ouckileou » 11 juil. 2006, 16:47

:agenouille: je suis une andouille le resultat n'est certainement pas 12 mais plus 62 :cry: je suis desolé de t'avoir fait perdre ton temps il y avait plusieurs id qui étaient modérateurs et ... j'avais pas vu desolé. Bon je pense que mon probleme est résolu merci
Y'a pas de problème et y'a pas de quoi :)

par konjiki » 11 juil. 2006, 16:42

:agenouille: je suis une andouille le resultat n'est certainement pas 12 mais plus 62 :cry: je suis desolé de t'avoir fait perdre ton temps il y avait plusieurs id qui étaient modérateurs et ... j'avais pas vu desolé. Bon je pense que mon probleme est résolu merci

par ouckileou » 11 juil. 2006, 16:33

Les utilisateurs peuvent avoir plusieurs sessions ouvertes ?

par konjiki » 11 juil. 2006, 16:27

#-o non toujours pas mais peut etre que je me suis mal expliqué, en fait dans la table sessions il y a la liste des gens connectés, moi je veux savoir combien il y a de modérateurs et combien d'autres. On distingue un moderateur par son ''level" (egale à 6666666) qui est dans la table users. D'ou le raprochement de ces 2 tables. J'ai bien compter et le resultat devrait 12 et non 62. penses tu que ça puisse venir du ''inner join"?

par ouckileou » 11 juil. 2006, 16:20

Ben moi je dirais ça, bizarre que ça ne te donne pas les résultats que tu veux

Code : Tout sélectionner

SELECT COUNT( s.id ) AS nb_id FROM sessions AS s INNER JOIN users AS u ON s.user_id = u.id WHERE users.level = 6666666
ou éventuellement :

Code : Tout sélectionner

SELECT s.user_id, COUNT( s.id ) AS nb_id FROM sessions AS s INNER JOIN users AS u ON s.user_id = u.id WHERE users.level = 6666666 GROUP BY s.user_id

par konjiki » 11 juil. 2006, 15:57

comment on peut faire pour un affichage propre de la table dans le forum parce là c'est le bordel quand je colle , j'ai deja vu mais j'y arrive pas :?
sinon pour sessions

Champ Type Interclassement Attributs Null Défaut
id varchar(20) latin1_swedish_ci Non
user_id int(6) Non 0
ip varchar(9) latin1_swedish_ci Non
lastseen timestamp ON UPDATE CURRENT_TIMESTAMP Non TIMESTAMP

pour users

Champ Type Interclassement Attributs Null Défaut
id int(6) Non auto_increment
level int(20) UNSIGNED Oui 0

j'essaye de faire mieux la prochaine fois :roll:

par ouckileou » 11 juil. 2006, 15:48

File la structure détaillée de tes tables

par konjiki » 11 juil. 2006, 15:47

c'est pas bon, le resultat devrai etre 12 et il m'affiche 62 :shock:
j'ai essayé ça
SELECT * FROM sessions
            INNER JOIN users ON users.id = sessions.user_id
            WHERE users.level = "6666666" 
et maintenant la table est toute zarb, j'ai plein de doublons...

par ouckileou » 11 juil. 2006, 15:41

Tu te compliques bien la vie on dirait, pourquoi faire une requête au lieu d'appliquer directement la condition ?

Code : Tout sélectionner

SELECT count( sessions.id ) as nb_id FROM sessions INNER JOIN users ON users.id = sessions.user_id WHERE users.level = "6666666"

par konjiki » 11 juil. 2006, 15:33

MySQL 4.1.12

par ouckileou » 11 juil. 2006, 15:31

Requêtes imbriquées dispo à partir de la version 4.1

Quelle est ta version

probleme requete imbriquée

par konjiki » 11 juil. 2006, 15:15

salut, je voudrai compter le nombre d'id dans la table session où les level de la table users sont egales à 6666666. il y a relation entre les tables sessions et users. J'ai essayé comme c-dessous mais il me donne une erreure. Merci de votre aide
SELECT count( sessions.id ) as nb_id
			FROM sessions
			INNER JOIN users ON users.id = sessions.user_id
			WHERE users.level = (
			SELECT level
			FROM users
			WHERE level = "6666666" )
			GROUP BY level