Alternative a la boucle - SQL/NoSQL - Programmation
Marsh Posté le 27-07-2019 à 09:49:45
Ce que tu vas pouvoir utiliser dépend fortement du SGBDR, donc tu dois préciser lequel tu emploie s.
Par exemple ous SQL Server ça peut se faire avec une CTE (premier lien en français : https://www.softfluent.fr/blog/expe [...] SQL-Server ).
Marsh Posté le 27-07-2019 à 18:45:40
La structure de la table commentaires me paraît vraiment naze et pas pratique du tout à requêter
En toute logique, c'est le ProduitID qui devrait être clé étrangère dans la table commentaire et pas le contraire puisqu'on est dans une relation 1-n : 1 produit à 0 à plusieurs commentaires. Ca sent la BD mal conçue
Marsh Posté le 29-07-2019 à 10:36:41
c'est du sql server, je crois
Essaye avec ce genre d'approche : https://stackoverflow.com/questions [...] -any-child , ce sera toujours plus perf que de boucler depuis l'exterieur du SGBD
ce serait plus simple avec une autre structure, genre ajouter une colonne product_id_root, mets à jour les données existantes, et ajoute une trigger qui, lors de l'ajout d'une ligne met à jour cette donnée
Marsh Posté le 26-07-2019 à 22:38:08
Bonjour a tous,
Je suis assez débutant en SQL, et je dois faire une requête vers une base assez... Hardcore. L'informaticien qui la gère est débordé, il a pas le temps de la faire donc j'aimerais lui proposer une solution clé en main.
La problématique: on a un produit avec un ou plusieurs commentaires. Je veux récupérer tous ces commentaires
Dans la structure, j'ai une table "Produit" et une table "Commentaire". Un produit peut avoir plusieurs commentaires, un commentaire est sur un seul produit. Sauf que les commentaires sont reliés de la manière suivante:
Table Produit
product_num | Comment_ID | etc...
Table Commentaire
Comment_ID | NextComment_ID | etc...
Donc si je veux trouver tous les commentaires d'un produit, je dois faire la jointure entre la table Produit et commentaire, et pour les suivants je dois regarder si N° CommentaireSuivant est pas nul...
Je sais pas si j'ai été clair, voici la requête crée pour l'instant:
Le problème, c'est que je sais que cette requête sera refusée car la boucle est quelque chose de trop dangereux si j'ai bien compris... Je suis preneur de toute alternative qui permettrait de se passer de la boucle et permette de récupèrer tous les résultats, merci d'avance
PS: j'ai testé la solution des jointure de la table comment sur elle même, mais ça permet de récupérer autant de résultat qu'on répète la ligne dans le code, ça me parais pas très propre:
Message édité par vylkor le 26-07-2019 à 22:45:35