Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 08h46   #1
Membre éprouvé
 
Avatar de Gecko
 
Homme Antoine B
Développeur Web
Inscription : février 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Antoine B
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 106
Points : 409
Points : 409
Envoyer un message via MSN à Gecko Envoyer un message via Skype™ à Gecko
Par défaut With recursive - Divers problèmes

Bonjour !

J'ai différents problèmes sur la requête que voici:
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
WITH RECURSIVE children(zid,date,cid,parent,content,uid,level) AS (
	SELECT tc.".$Column.",tc.comment_pubdate,tc.comment_id,tc.comment_parent,tc.comment_content,tc.user_id, 0
	FROM toine.".$Table." tc
	WHERE tc.".$Column." = :zone_id AND tc.comment_parent = '0'
		  UNION ALL
	SELECT ".$Column.",comment_pubdate,comment_id,comment_parent,comment_content,user_id, e.level+1
	FROM toine.".$Table." tc, children e
	WHERE tc.comment_parent = e.cid
		)
SELECT zid,date,cid,parent,content,uid,level 
FROM children
ORDER BY parent, cid, level

Code :
1
2
$Table = xxxx_comments (news_comments)
$Column = xxxx_id (news_id)
Voici la structure de ma table:
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                      TABLE " toine.news_comments "
     Colonne     |  Type   |                                Modificateurs
-----------------+---------+------------------------------------------------------------------------------
 comment_id      | integer | non NULL Par défaut, NEXTVAL('toine.news_comments_comment_id_seq'::regclass)
 comment_pubdate | bigint  |
 comment_plus    | bigint  | non NULL Par défaut, 0
 comment_minus   | bigint  | non NULL Par défaut, 0
 comment_content | text    |
 news_id         | bigint  |
 user_id         | bigint  |
 comment_parent  | bigint  | non NULL Par défaut, 0
 user_ip         | bigint  |
INDEX :
    "news_comments_pkey" PRIMARY KEY, btree (comment_id)

Pour les problèmes:

1) Quel que soit l'ordre appliqué mes sous-commentaires ne sont pas greffés à leur commentaire parent.
Ce qui fait que quand on répond au commentaire 8 le sous-commentaire va se retrouver en bas de page.
Je me demande si cela ne provient pas des requêtes dans children, mais quel que soit les docs je ne trouve absolument rien.

2) Existe-t-il une solution plus légère sous postgres pour arriver au même résultat ? A savoir que je ne veux pas faire plusieurs boucles de traitements sur mon script php.

3) Est-ce que je peux affecter LIMIT aux parents ? En gros je voudrais qu'il n'y ait que les parents qui soient pris en compte par la limite pour éviter de couper les fils de discussions.

Merci d'avance pour votre aide, Toine
__________________
Si ce message vous a aidé, pensez à voter pour lui!
Développe vos scripts E-Commerce et autres en PHP
N'hésitez pas à me contacter par MP, E-Mail et MSN
Gecko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web