Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 07h08   #1
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
Par défaut Requête pour extraire les articles les plus consultés

Bonjour à tous,

j'ai un tit problème...je souhaite faire une requête pour extraire les articles les plus consultés de mon site.

Pour ce faire j'ai deux tables une qui contient mes articles :

id_article, titre_article, contenu_article de tbl_article

et une deuxième table qui contient les visites :

id_visite, id_article_count de tbl_visite

J'ai donc besoin d'extraire tous mes articles dans l'ordre décroissant des visites après avoir compté le nombre de visite par article.

Quelques données :

tbl_article

id_article = 1, titre_article = titre1, contenu_article = contenu1
id_article = 2, titre_article = titre2, contenu_article = contenu
2

tbl_visite

id_visite = 1, id_article_count = 1
id_visite = 2, id_article_count = 1
id_visite = 3, id_article_count = 1
id_visite = 4, id_article_count = 1
id_visite = 5, id_article_count = 2
id_visite = 6, id_article_count = 2
id_visite = 7, id_article_count = 2
id_visite = 8, id_article_count = 2
id_visite = 9, id_article_count = 2


Voici ce que j'ai commencé à faire mais qui ne fonctionne pas bien sûr :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT 
     p.id_tbl_article,
     p.titre_tbl_article,
     p.contenu_tbl_article
FROM
     tbl_article AS p
INNER JOIN
     tbl_visite AS v
     ON
	p.id_tbl_article = v.article_tbl_visite
ORDER BY 
     COUNT(v.id_tbl_visite)
DESC LIMIT 5
Merci à vous pour réponses.
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 08h54   #2
Membre expérimenté
 
Inscription : octobre 2002
Messages : 654
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 654
Points : 552
Points : 552
Bonjour,
Je ne comprend pas dans ta description de table tu écris table article colonne id_article et dans ton sélect on dirait que la colonne s'appelle id_tbl_article. Quel est le bon nom de colonne?
Citation:
mais qui ne fonctionne pas bien sûr :
Peux-tu être plus précis?
Ne donne pas le résultat attendu.
Plante avec message d'erreur XXXX

Une piste néanmoins il manque un group by dans ta requête.
A+
Soazig
soazig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 15h29   #3
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
SELECT 
     p.id_tbl_article,
     p.titre_tbl_article,
     p.contenu_tbl_article,
	 COUNT(*) AS visite
FROM
     tbl_article AS p
INNER JOIN
     tbl_visite AS v
     ON
	p.id_tbl_article = v.article_tbl_viste
GROUP BY
	v.article_tbl_viste
ORDER BY 
     visite
DESC LIMIT 5
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h14.


 
 
 
 
Partenaires

Hébergement Web