|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() ![]() |
Bonjour!
J'ai un souci avec ma requête SQL: Code SQL :
Les résultats ressortent plusieurs fois ce qui est embêtant. J'ai tenté d'ajouter GROUP BY mais ça me demande d'ajouter tous les arguments de children(). Du coup je sèche un peu, le but est d'éviter d'avoir plusieurs requêtes pour afficher une liste de commentaires. Merci d'avance pour votre aide
__________________
Si ce message vous a aidé, pensez à voter pour lui! |
||
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
S'il s'agit d'un GROUP BY sur toutes les colonnes, autant utiliser un DISTINCT...
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
00
|
|
|
#3 | |
|
Membre éprouvé
![]() ![]() |
Citation:
Je veut juste éliminer les doublons générés par la requête, je ne cherche pas forcément à traiter toutes les colonnes. Je comprend pas pourquoi j'ai ce comportement
__________________
Si ce message vous a aidé, pensez à voter pour lui! |
|
|
00
|
|
|
#4 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Si DISTINCT ne regroupe pas les lignes, il ne s'agit donc pas de doublons complet.
La première chose à faire est de trouver la règle qui permettra d'identifier les lignes à conserver.
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Si comment_id est unique sur toute la table, la requête parait juste.
Tu es sûr que ce n'est pas un problème avec les données plutôt? |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() ![]() |
J'ai cerné le problème, c'est level qui est pas au point.
En gros il répète le post jusqu'à atteindre le bon chiffre, voici un petit exemple en image. http://www.toine.pro/theme/shiny_hill/etvepocrever.png Et du coups beh c'est assez embêtant parce que je vois pas trop comment corriger ça
__________________
Si ce message vous a aidé, pensez à voter pour lui! |
|
00
|
|
|
#7 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
OK. En 2eme lecture je pense que la sous- requête avec le level à 1 n'est pas juste car elle renvoie tous les commentaires de la discussion alors qu'elle devrait renvoyer uniquement ceux qui n'ont pas de parent (colonne comment_parent à NULL ou à 0 suivant ce que tu as choisi)
|
|
|
00
|
|
|
#8 | ||||
|
Membre éprouvé
![]() ![]() |
Code :
Code :
__________________
Si ce message vous a aidé, pensez à voter pour lui! |
||||
|
00
|
|
|
#9 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Ce que je voulais dire c'est remplacer par
Code :
WHERE nc.news_id = :news_id AND comment_parent IS NULL |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() ![]() |
Merci beaucoup, ça fonctionne et ça m'a bien dégoûté en même temps
![]() Je ne pensais pas que la solution serait aussi simple. Et existe-t-il un moyen de couper la requête de manière propre ? Par exemple si j'ai 140 commentaires et que je veux qu'il y en ait 10 par page. C'est possible de stopper au dernier enfant précédant la limite si le commentaire suivant a trop d'enfants pour la respecter ?
__________________
Si ce message vous a aidé, pensez à voter pour lui! |
|
00
|
Copyright © 2000-2012 - www.developpez.com