Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
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 25/07/2011, 16h53   #1
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 1
Points : 1
Par défaut Relation reflexive et unicité

Mesdames, Messieurs
Je vous explique mon petit souci:
tout d'abord j'ai une table dans laquelle je stock des relations du type
toto est ami avec tutu et tutu et toto sont amis avec tata
ce qui donne dans la table:
nbgroup | utilisateur
1 | toto
1 | tutu
1 | tata

Jusque là tout va bien maintenant je vais ajouter un peu de piment
nbgroup | utilisateur
1 | toto
1 | tutu
1 | tata
2 | toto
2 | tata

Ce qui représente qui représente le fait que tata et toto ont une relation plus forte.

Maintenant le problème:

Quand je veux insérer des enregistrements, je veux être sur que le groupe
tata toto n'est pas en double et je veux être sur que je ne récuperai pas le groupe 1 lorsque je voudrais insérer des valeurs du type toto tata mais uniquement le groupe2

Les contraintes je ne connais que toto et tata et je sais que je veux insérer ce groupe mais dois-je crée un nouveau numéro ou existe t-il déjà ?
izulah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 19h21   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 016
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 : 11 016
Points : 18 299
Points : 18 299
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par izulah Voir le message
Mesdames, Messieurs
Je vous explique mon petit souci:
tout d'abord j'ai une table dans laquelle je stock des relations du type
toto est ami avec tutu et tutu et toto sont amis avec tata
ce qui donne dans la table:
nbgroup | utilisateur
1 | toto
1 | tutu
1 | tata
En supposant que 'nbgroup' veuille dire 'numéro de groupe', cela veut surtout dire que toto, tutu et tata font partie du groupe n° 1.

Citation:
Jusque là tout va bien maintenant je vais ajouter un peu de piment
nbgroup | utilisateur
1 | toto
1 | tutu
1 | tata
2 | toto
2 | tata

Ce qui représente qui représente le fait que tata et toto ont une relation plus forte.
Cela veut surtout dire que toto et tata font partie du groupe n° 2 dont est, pour le moment, exclu tutu.

Citation:
Maintenant le problème:

Quand je veux insérer des enregistrements, je veux être sur que le groupe
tata toto n'est pas en double et je veux être sur que je ne récuperai pas le groupe 1 lorsque je voudrais insérer des valeurs du type toto tata mais uniquement le groupe2

Les contraintes je ne connais que toto et tata et je sais que je veux insérer ce groupe mais dois-je crée un nouveau numéro ou existe t-il déjà ?
Autrement dit, tu cherches s'il existe déjà un groupe formé seulement de toto et tata, c'est-à-dire un groupe dont toto et tata sont membres et qui ne contient que deux individus.
Code :
1
2
3
4
5
SELECT nbgroup
FROM ta_table
WHERE utilisateur IN ('toto', 'tata')
GROUP BY nbgroup
HAVING COUNT(*) = 2
__________________
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 actuellement 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 12h08.


 
 
 
 
Partenaires

Hébergement Web