A voir également:
- Requete count
- 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 tennis mais pas de tennis de table ✓ - Forum Java
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- 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 Loisirs / Divertissements
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Google Chrome
3 réponses
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 ^^)
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
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
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