Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
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 05/02/2011, 20h08   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 28
Points : 2
Points : 2
Par défaut Jointure tables (débutant)

Bonjour,

J'ai deux tables notes et droits.
La table notes a les champs (id,titre,contenu)
La table droits a les champs (id_droit,id_note,id_user)

Je voudrais faire une requête pour récupérer les notes d'un utilisateur.

Un peu dur à expliquer, mais sur un exemple :

On veut récupérer les notes de l'utilisateur avec id_user=1 et id_droit=1
J'avais fais :
Code :
1
2
3
4
SELECT id_note 
FROM droits 
WHERE id_user=1 
  AND id_droit=1;
Et ensuite il faut que je récupère les notes
Code :
1
2
3
SELECT * 
FROM notes 
WHERE id= --(ici il faut que l'id corresponde à ceux récupérer dans la 1ere requete)
Vous comprenez mieux?

Peut être une seule requête suffit?
Mais même avec deux requêtes je n'y arrive pas, car la 1ere requete me renvoie la liste des id_notes, et ensuite je voudrais récupérer les notes où l'id est dans la liste des id_notes.

Merci beaucoup.
benji1801 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 20h17   #2
Invité de passage
 
Inscription : novembre 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 28
Points : 2
Points : 2
C'est bon j'ai trouvé, je devais faire :

Code :
1
2
3
4
5
SELECT notes.titre,notes.contenu 
FROM droits,notes 
WHERE droits.id_user=1 
  AND droits.id_droit=1 
  AND droits.id_note=notes.id;
benji1801 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 15h34   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Et avec les jointures normalisées depuis 1992, c'est encore mieux :
Code :
1
2
3
4
5
SELECT notes.titre,notes.contenu 
FROM droits
INNER JOIN notes ON droits.id_note=notes.id
WHERE droits.id_user=1 
  AND droits.id_droit=1 ;
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil 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 08h36.


 
 
 
 
Partenaires

Hébergement Web