SQL Recherche par ID
Résolu
johann74270
-
jee pee Messages postés 31889 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 31889 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai 3 Tables :
JOIN_VIDEO_CATEGORY (ID, ID_VIDEO, ID_CATEGORY)
JOIN_VIDEO_CLICKED (ID, ID_VIDEO, CLICKED)
VIDEO (ID, TITRE)
Je souhaite en une requête obtenir les vidéos de la catégorie N°94 dans l'ordre des vidéos les plus cliquées.
Une idée ?
Merci
J'ai 3 Tables :
JOIN_VIDEO_CATEGORY (ID, ID_VIDEO, ID_CATEGORY)
JOIN_VIDEO_CLICKED (ID, ID_VIDEO, CLICKED)
VIDEO (ID, TITRE)
Je souhaite en une requête obtenir les vidéos de la catégorie N°94 dans l'ordre des vidéos les plus cliquées.
Une idée ?
Merci
3 réponses
-
Bonjour,
select titre, cliked from JOIN_VIDEO_CATEGORY, JOIN_VIDEO_CLICKED, VIDEO where JOIN_VIDEO_CATEGORY.ID_VIDEO=VIDEO.ID and JOIN_VIDEO_CLICKED.ID_VIDEO=VIDEO.ID and JOIN_VIDEO_CATEGORY.ID_CATEGORY='94' order by cliked desc
En mysql, de façon plus native on utilisera les jointures (INNER JOIN). Mais je ne me suis pas habitué à cette syntaxe.
cdlt
Un étranger, c'est un ami qu'on n'a pas encore rencontré.-
Aller un essai avec les jointures, ainsi je pourrais avoir des corrections sur la syntaxe si je commets des erreurs ;-)
select titre, cliked from VIDEO INNER JOIN JOIN_VIDEO_CATEGORY ON JOIN_VIDEO_CATEGORY.ID_VIDEO=VIDEO.ID INNER JOIN JOIN_VIDEO_CLICKED ON JOIN_VIDEO_CLICKED.ID_VIDEO=VIDEO.ID where JOIN_VIDEO_CATEGORY.ID_CATEGORY='94' order by cliked desc
-
-
Re
SELECT * FROM VIDEO WHERE ID IN ( SELECT * FROM ( SELECT ID_VIDEO FROM JOIN_VIDEO_CLICKED WHERE ID_VIDEO IN ( SELECT ID_VIDEO FROM JOIN_VIDEO_CATEGORY WHERE ID_CATEGORY = 94 )ORDER BY CLICKED DESC) AS TEMP) LIMIT 1 Résolu
J'ai trouvé une solution qui correspond à mes besoins -
Si pour une requête simple as besoin de 3 sous select imbriqués, je ne sais pas comment tu feras quand cela se compliquera.
Là tu as décomposé le problème en unités simples que tu savais résoudre et tu les as empilées. Il faut que tu travailles les jointures ;-)))