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:
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 [ { 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 } } ]
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.
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 } ]
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.
Partager