A voir également:
- Requete count
- Requête sql pix - Forum Python
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Erreur de requete facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum Thunderbird
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. veuillez renvoyer votre requête ultérieurement. ✓ - Forum Virus
3 réponses
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
16 févr. 2010 à 13:43
16 févr. 2010 à 13:43
montre nous ce que tu as fait pour l'instant et on corrigera (faudrai pas qu'on pense que tu nous donne tes exo a faire ^^)
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
16 févr. 2010 à 14:16
16 févr. 2010 à 14:16
bon ben désolé mais moi les inner join dans tout les sens j'y pige rien ^^'
j'ai fait une représentation des tables que tu a mi dans ta requete et les champs (pour ma compréhension personnel) et j'en ai rajouté quelques un pour que ca soit plus complet
la requete compte le nombre d'effectué = "0" pour chaque user (avec le group by), je n'ai pas mis le département =1
j'ai fait une représentation des tables que tu a mi dans ta requete et les champs (pour ma compréhension personnel) et j'en ai rajouté quelques un pour que ca soit plus complet
schéma: tab_departement(id_dept,libelle) tab_user(id_user,#departement,nature_user) tab_matiere(id_mat,libelle) tab_enseignement(#id_mat,#id_user) tab_seance(id_seance,#id_mat,effectue) requète: select tab_user.id_user,count(*) as nb_effectue_eg_0 from tab_user,tab_enseignement,tab_seance,tab_matiere where tab_user.id_user=tab_enseignement.id_user and tab_enseignement.id_mat=tab_matiere.id_mat and tab_matiere.id_mat=tab_seance.id_mat and tab_seance.effectue="0" group by tab_user.id_user
la requete compte le nombre d'effectué = "0" pour chaque user (avec le group by), je n'ai pas mis le département =1
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
16 févr. 2010 à 14:37
16 févr. 2010 à 14:37
s'il faut grouper par utilisateur alors on utilise un group by
par exemple sans le group by il y a un total de 100 lignes et 10 utilisateurs
le résultat ferai 100 lignes avec a chaque ligne l'id de l'utilisateurs répertorié avec a coté le nombre 100
avec le group by ca ne ferai plus que 10 lignes mais le nombre a coté variera en fonction du nombre de ligne pour chaque utilisateurs
(c'est un peu dur a expliquer comme ca ^^')
mais tu peu tester toi même avec et sans le group by
note que dans ta premiere requète tu n'as pas utilisé de count, ce qui fait que ca ne compte rien. je ne suis pas capable de comparer tes inner join avec mes jointures basiques (mais compréhensible :P) donc je ne peu pas dire si nos deux requètes donnerai le même résultat si tu ajoute un count(*) a la tienne
par exemple sans le group by il y a un total de 100 lignes et 10 utilisateurs
le résultat ferai 100 lignes avec a chaque ligne l'id de l'utilisateurs répertorié avec a coté le nombre 100
avec le group by ca ne ferai plus que 10 lignes mais le nombre a coté variera en fonction du nombre de ligne pour chaque utilisateurs
(c'est un peu dur a expliquer comme ca ^^')
mais tu peu tester toi même avec et sans le group by
note que dans ta premiere requète tu n'as pas utilisé de count, ce qui fait que ca ne compte rien. je ne suis pas capable de comparer tes inner join avec mes jointures basiques (mais compréhensible :P) donc je ne peu pas dire si nos deux requètes donnerai le même résultat si tu ajoute un count(*) a la tienne
16 févr. 2010 à 13:51
SELECT tab_departement.id_dept, tab_user.id_user, tab_user.nom_user, tab_user.prenom_user, tab_user.nature_user, tab_seance.effectue, tab_seance.date_seance
FROM (tab_departement INNER JOIN tab_user ON tab_departement.id_dept = tab_user.departement) INNER JOIN ((tab_matiere INNER JOIN tab_enseignement ON tab_matiere.id_mat = tab_enseignement.id_mat) INNER JOIN tab_seance ON tab_matiere.id_mat = tab_seance.id_mat) ON tab_user.id_user = tab_enseignement.id_user
WHERE (((tab_departement.id_dept)=1) AND ((tab_user.nature_user)=3) AND ((tab_seance.effectue)="0"));
merci