|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Bonjour à tous,
Je me perds dans une requête un peu complexe. J'ai 5 tables : 1 table Categorie 1 table Titre 1 table MotsClés + 1 table qui relie 1 titre à 1 Catégorie (1 catégorie peut regrouper plusieurs titres) + 1 table qui relie 1 titre à 1 mots clés (1 mots clés peut avoir plusieurs titres, et 1 titre peut avoir plusieurs mots clés). Je souhaite récupérer dans ma requête la liste des mots clés présents dans chaque catégorie ET compter combien de fois chaque mot clé apparait. J'ai fait la requête suivante : Code :
Par contre je voudrais pouvoir ajouter un count pour compter pour CHAQUE mot clé, combien de fois il est présent dans cette catégorie 1. Par exemple : 1, MotClé1, 3(fois) 2, MotClé2, 5(fois) 5, MotClé5, 1(fois) Merci d'avance pour vos conseils. P. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
Lisez ceci dans un premier lieu pour régulariser vos jointures : http://sqlpro.developpez.com/cours/sqlaz/jointures/ En particulier le chapitre III "Syntaxe normalisée des jointures" Ensuite concernant votre problème : http://sqlpro.developpez.com/cours/sqlaz/ensembles/ Et ca sera le 1er chapitre. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Et pourrais-je rajouter : le formatage de la requête .
Cela rend sa lecture et donc sa correction tellement plus agréable |
|
|
00
|
|
|
#4 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Effectivement, je suis désolé.
Je viens de reprendre la requête, cela fait donc ceci : Code :
Je pense ajouter GROUP BY K.id_motscles au niveau des tables puis faire un COUNT (C.id_titre) au niveau du select, mais cela ne marche pas. Qu'est-ce que je fais mal ? Merci de votre aide. |
||
|
|
00
|
|
|
#5 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Quel con !
En fait je mettais le GROUP BY au mauvais endroit ! Donc la requête qui fonctionne fait donc : Code :
Merci pour vos conseils. P. |
||
|
|
00
|
|
|
#6 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
attention, il manque un élément dans le GROUP BY
ET ce n'est pas le bon élément ![]() Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Merci pour ces précisions.
Par contre je ne comprends pas bien les modifs. Pourquoi ajouter le GROUP BY avec les 2 champs nom et id_keywords, plutôt qu'uniquement le id_keywords ? Merci d'avance. |
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Bonjour
tu n'as pas bien lu le lien indiqué par Punkoff. Toutes les colonnes fournies dans le SELECT (sauf les colonnes indiquant une agrégation, le COUNT dans ton cas) doivent apparaitre dans le GROUP BY. Essayes, tu verras bien ce qui se passe sans cela
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Citation:
De ce fait il attendra une fonction qui permettra de gérer l’agrégation sur le nom (comme le max, count, etc ..). |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com