IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[Requête SQL] Problème de réalisation


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut [Requête SQL] Problème de réalisation
    Bonjour,

    J'ai de petits problèmes pour réaliser deux requêtes SQL qui me semblaient basiques à priori.
    Voici deux tables :

    ARTICLE
    id
    author_id
    category_id
    isEnabled
    subject
    body
    createdAt
    updatedAt
    slug

    COMMENTAIRE
    id
    author_id
    topic_id
    body
    createdAt
    updatedAt

    J'aimerais effectuer sur ces tables deux fonctionnalités :

    Retourner les trois derniers articles commentés
    Retourner les trois articles les plus commentés ces 30 derniers jours

    Malheureusement, je me suis quelque peu emmêlé les pinceaux car je n'y arrive pas Pourriez-vous m'aider ? Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Sans connaitre votre SGBD c'est plus compliqué.

    Sinon regardez du côté des ordres LIMIT, FETCH FIRST etc...

    Pour la deuxieme requête il faudrai regarder du côté de la clause GROUP BY et la fonction COUNT(*) et reboucler avec votre 1ere requete.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    La fonction de fenêtrage row_number() doit également vous permettre d'arriver à vos fins. Elle fait partie de la norme SQL il me semble, mais ça ne garantit pas que votre SGBD l'implémente.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Si par "connaître votre SGBD", vous entendez le fournisseur, c'est MySQL. Mais la requête doit respecter la norme SQL en vigueur.
    Si vous entendiez plutôt le contenu/schema de la DB, la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE TABLE IF NOT EXISTS `commentaire` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `article_id` int(11) NOT NULL,
      `body` longtext NOT NULL,
      `createdAt` datetime NOT NULL,
      `updatedAt` datetime NOT NULL,
      PRIMARY KEY (`id`),
    )
     
    CREATE TABLE IF NOT EXISTS `article` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `isEnabled` tinyint(1) NOT NULL,
      `subject` varchar(100) NOT NULL,
      `body` longtext NOT NULL,
      `createdAt` datetime NOT NULL,
      `updatedAt` datetime NOT NULL,
      `slug` varchar(200) NOT NULL,
      PRIMARY KEY (`id`),
    )

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Donc,

    avec MySql c'est bien du côté du "LIMIT" qu'il faut que vous regardiez.
    Et bien-sur de "ORDER BY". Ceci pour la 1ere requete.

    Pour la 2eme rien ne changera par rapport à ce que j'ai dit.

    Revenez avec vos jeux d'essais (requete) si ca ne marche pas.

Discussions similaires

  1. requête SQL problème avec relation N-N
    Par p'tite Sandrine dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 05/10/2007, 12h08
  2. Requête SQL, problème d'écriture
    Par porci82 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/06/2007, 14h56
  3. [Requête/SQL]Problème de sélection d'enregistrements
    Par phil06 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/04/2007, 23h47
  4. [Requêtes SQL] Problème de jointure ?
    Par soso78 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/12/2006, 15h37
  5. [Requête SQL] Problème pour echantilloner
    Par jool dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/08/2005, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo