SQL Recherche par ID

Résolu
johann74270 -  
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

3 réponses

  1. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
     
    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é.
    0
    1. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
       
      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
      0
  2. johann74270
     
    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
    0
  3. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
     
    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 ;-)))
    0