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.