Faire une vue faisant la jointure entre deux tables avec relation NN.
Bonjour, je viens vous demander un peu d'aide sur le forum SQL car je dois réaliser la vue suivante :
..... email ..... | ....... nom ........
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
adr1@mail.com | utilisateur
--------------------------------
adr1@mail.com | admin
--------------------------------
adr2@mail.com | visiteur
--------------------------------
adr3@mail.com | visiteur
--------------------------------
adr4@mail.com | utilisateur
Elle met en relation les utilisateurs et leur(s) groupe(s).
Les tables en questions sont les suivantes :
Code:
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| CREATE TABLE groupe (
id integer NOT NULL,
nom character varying,
libelle character varying
);
CREATE TABLE personne (
id integer NOT NULL,
email character varying,
password character varying
);
CREATE TABLE personne_groupe (
id_personne integer,
id_groupe integer
);
ALTER TABLE ONLY groupe
ADD CONSTRAINT groupe_nom_key UNIQUE (nom);
ALTER TABLE ONLY groupe
ADD CONSTRAINT groupe_pkey PRIMARY KEY (id);
ALTER TABLE ONLY personne
ADD CONSTRAINT personne_email_key UNIQUE (email);
ALTER TABLE ONLY personne
ADD CONSTRAINT personne_pkey PRIMARY KEY (id);
ALTER TABLE ONLY personne_groupe
ADD CONSTRAINT personne_groupe_id_personne_id_groupe_key UNIQUE (id_personne, id_groupe);
ALTER TABLE ONLY personne_groupe
ADD CONSTRAINT personne_groupe_id_groupe_fkey FOREIGN KEY (id_groupe) REFERENCES groupe(id)
ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY personne_groupe
ADD CONSTRAINT personne_groupe_id_personne_fkey FOREIGN KEY (id_personne) REFERENCES personne(id)
ON UPDATE CASCADE ON DELETE CASCADE;
CREATE SEQUENCE groupe_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE ONLY groupe ALTER COLUMN id SET DEFAULT nextval('groupe_id_seq'::regclass);
CREATE SEQUENCE personne_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE ONLY personne ALTER COLUMN id SET DEFAULT nextval('personne_id_seq'::regclass); |
Je ne sais pas comment réaliser les jointures pour arriver à ce résultat.
Merci d'avance pour votre aide.