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

NodeJS Discussion :

Résultat SQL et création d'un array


Sujet :

NodeJS

  1. #1
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut Résultat SQL et création d'un array
    Bonjour,

    Je galère avec la logiue de création d'un nouvel array en utilisant le résultat d'un requête SQL utilisant JOIN.
    Je m'explique: J'ai une table (postgresql) qui contient des tickets, et un table qui contient des commentaires et une foreign key por la référence vers le ticket_id.

    Quand je fais ma requête pour récupérer pour chaque ticket la liste de ses commentaires, la requête me renvoi autant de ligne qu'il y a de commentaires (normal quoi ...).
    Je voudrai maintenant créer un objet qui remets tous les commentaire dans l'objet du ticket:

    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
    20
    21
    22
    23
    [
      {
        ticket_id: '84236fa6-3895-461e-a769-8e06ff254142',
        description: 'test 1',
        content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut \r\n' +
          '\r\n' +
          'labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ni\r\n' +
          'si ut aliquip ex ea commodo consequat. Duis aute \r\n' +
          '\r\n' +
          'irure dolor in reprehenderit in voluptate velit esse cillum dolore e',
        status: 'open',
        open_by: 'toto',
        created_at: 2019-11-21T20:28:30.720Z,
        updated_at: 2019-11-21T20:28:30.720Z,
        comments: [
          {
             comment_id: '98accc55-7a4b-46fc-b583-f11410305d6c',
             by: 'tata',
             created_at: 2019-11-21T20:29:52.113Z,
             updated_at: 2019-11-21T20:29:52.113Z
          }
      }
    ]
    Voilà le résultat brut de ma requête:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    [
      {
        ticket_id: '84236fa6-3895-461e-a769-8e06ff254142',
        description: 'test 1',
        content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut \r\n' +
          '\r\n' +
          'labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ni\r\n' +
          'si ut aliquip ex ea commodo consequat. Duis aute \r\n' +
          '\r\n' +
          'irure dolor in reprehenderit in voluptate velit esse cillum dolore e',
        status: 'open',
        open_by: 'toto',
        created_at: 2019-11-21T20:28:30.720Z,
        updated_at: 2019-11-21T20:28:30.720Z,
        comment_id: '98accc55-7a4b-46fc-b583-f11410305d6c',
        comment_by: 'tata',
        comment_created_at: 2019-11-21T20:29:52.113Z,
        comment_updated_at: 2019-11-21T20:29:52.113Z
      },
      {
        ticket_id: '84236fa6-3895-461e-a769-8e06ff254142',
        description: 'test 1',
        content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut \r\n' +
          '\r\n' +
          'labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ni\r\n' +
          'si ut aliquip ex ea commodo consequat. Duis aute \r\n' +
          '\r\n' +
          'irure dolor in reprehenderit in voluptate velit esse cillum dolore e',
        status: 'open',
        open_by: 'toto',
        created_at: 2019-11-21T20:28:30.720Z,
        updated_at: 2019-11-21T20:28:30.720Z,
        comment_id: '48066de0-3a5b-4666-96c8-212e93ab05c3',
        comment_by: 'titi',
        comment_created_at: 2019-11-21T20:29:20.031Z,
        comment_updated_at: 2019-11-21T20:29:20.031Z
      }
    ]
    Bon oui je sais que je pourrai juste aller chercher les commentaires avec une seconde requête en faisant une boucle sur la liste des tickets, mais ça oblige à faire des requêtes en plus et donc de charger encore plus la database.
    Je ne suis pas un grand développeur, mais j'essaie de m'en sortir comme je peux alors si une bonne âme peut m'aider sur ce coup ...

    Merci.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Remarque : la coloration syntaxique montre que le format de tes dates est incorrect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    created_at: 2019-11-21T20:28:30.720Z,
    updated_at: 2019-11-21T20:28:30.720Z,
    il devrait y avoir des quottes encadrantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    created_at: "2019-11-21T20:28:30.720Z",
    updated_at: "2019-11-21T20:28:30.720Z",
    Je voudrai maintenant créer un objet qui remets tous les commentaire dans l'objet du ticket:
    pas trop compris la signification, peut être une boucle !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dataRetour.forEach((el) => {
      // on fait ce que l'on veut avec el.content et le reste d'ailleurs !
    });

Discussions similaires

  1. [Oracle] Tableau résultat Sql et casse
    Par cbroissa dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/04/2006, 23h44
  2. Comment enregistrer un résultat SQL en format TXT ...
    Par Jamal_71 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 30/01/2006, 14h23
  3. Requete sql pour création de table dans une base access
    Par Ben156 dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/01/2006, 22h12
  4. [SQL SERVER]Création table de Login avec création mot pass
    Par MatthieuQ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2006, 12h07
  5. Affecter résultat SQL d'une requête à une variable
    Par bozolozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2005, 17h37

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