Vous n'êtes pas identifié(e).

#1 11/06/2019 12:07:04

Wapax
Membre

GROUP BY après jointure

Bonjour,

J'ai réalisé une base de données sur Postgre que j'exploite avec une application WEB, qui est un projet perso.
J'ai fait une liste de liens avec des catégories (une sorte de favoris).

J'ai une table 'lien':
lien_id SERIAL PRIMARY KEY,
libelle VARCHAR (80),
url VARCHAR (80),
date_ajout DATE DEFAULT CURRENT_DATE,
description TEXT

et une table 'categorie' :
categ_id SERIAL PRIMARY KEY,
categ VARCHAR (50) NOT NULL

et une table 'relation' qui permet de faire la relation entre un lien et les catégories. Sachant que je veux qu'il lien puisse avoir plusieurs catégories:

rel_id SERIAL PRIMARY KEY,
categorie_id SERIAL,
liens_id SERIAL,
CONSTRAINT fk_categorie FOREIGN KEY (categorie_id) REFERENCES categorie (categ_id),
CONSTRAINT fk_lien FOREIGN KEY (liens_id) REFERENCES lien (lien_id)


La table 'relations' n'utilise que des clés étrangères qui proviennent des deux autres tables et qui permettent d'en identifier les éléments.

Je souhaite maintenant faire une requête SELECT qui m'affiche pour chaque lien, les catégories qui lui sont attribuées. Dans mon SELECT, j'utilise un GROUP BY. Mais je bloque à ce niveau; le retour est la liste complète. Alors que je veux que ce soit groupé par liens_id.

J'ai une requête du genre:

SELECT *
FROM liens l
INNER JOIN relations r
ON (r.liens_id = l.lien_id)
INNER JOIN categorie c
ON  (c.categ_id = r.categorie_id)
GROUP BY r.liens_id;


Pouvez-vous m'aider à y voir plus clair? Merci d'avance! smile

Hors ligne

#2 11/06/2019 14:37:48

gleu
Administrateur

Re : GROUP BY après jointure

Si vous montriez le résultat obtenu et le résultat souhaité, on comprendrait certainement mieux.


Guillaume.

Hors ligne

Pied de page des forums