Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 09 February 2017 15:22

Xavier Julian
Participant assidu
Lieu: Orange
Date d'inscription: 19 Jan 2015
Messages: 218

[PostgreSQL/PostGIS] Remplir une table intermédiaire

Bonjour à tous,

Je cherche à faire des requêtes de sélection entre deux tables qui ont une relation n:n plusieurs à plusieurs.
Je dois donc passer par une table intermédiaire, mais comment la remplir ?

Voici un exemple que je reprends de ce site https://postgresql.developpez.com/articles/pgdebutants/
Soit la table film et la table genre: Entre film et genre, plusieurs genres pour un film et plusieurs films pour un genre (donc une relation n,n).

Dans l'exemple en lien, il faut créer une table intermédiaire film_genre avec 3 colonnes :
- un champ de type serial (clé primaire)
- un champ pour pointer vers la table film (clé étrangère)
- un champ pour pointer vers la table genre (clé étrangère).

Jusqu'ici je comprends bien la logique, malheureusement dans ce tuto, cette table intermédiaire film_genre est remplie "à la main" avec un script INSERT INTO.
Voilà donc ma question : comment remplir une table intermédiaire automatiquement ?

Merci par avance !
++

Hors ligne

 

#2 Thu 09 February 2017 15:47

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1132

Re: [PostgreSQL/PostGIS] Remplir une table intermédiaire

Salut,

comment voulez vous que la machine devine que le film "Surf Nazis Must Die"
soit associé au genre comédie ou au genre historique ?

Plus sérieusement, si vous voulez constituer cette table afin de pouvoir vous exercez
sur les relations plusieurs à plusieurs, Vous pouvez faire quelque-chose comme çà :

Code:

SELECT row_number() over () id, film.id id_film ,genre.id id_genre
INTO film_genre
FROM film, genre;

Dernière modification par tumasgiu (Fri 10 February 2017 12:06)

Hors ligne

 

Pied de page des forums

Powered by FluxBB