#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: 1160
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