Requête SQL pour un unique id

Pommesky -  
loupius Messages postés 789 Statut Membre -
Bonjour,
J'ai crée une base de données où j'ai une table Utilisateur avec des 'idUtilsateur', une table Propriete avec des 'idPropriete' et une table Donnee qui associe un 'idUtilisateur' avec un 'idPropriete' plus une 'valeur'

J'aimerais effectuer une requête sql dans ma table Donnee pour récupérer les id des utilisateurs qui possède par exemple un idPropriete 4 avec la valeur "Gérard" et un idPropriete 5 avec la valeur "Tartiflette"

Globalement cela devrait se présenter comme sa :
SELECT idUtilisateur FROM Donnee WHERE idPropriete = 4 AND valeur = Gérard AND idPropriete = 5 AND valeur = Tartiflette


Voilà alors déjà je suis pas sur de moi pour les conditions et ensuite cette requête marchera même si les valeurs sont affecter a des idUtilisateur différents. Comment prendre en compte qu'il doit s'agir d'un même idUtilisateur ?

5 réponses

  1. loupius Messages postés 789 Statut Membre 148
     
    idPropriete = 4 AND ... AND idPropriete = 5 AND ...
    Sans en lire plus, on sait déjà que la requête ne donnera jamais de résultat !
    Bonne continuation.
    0
  2. Pommesky
     
    Oui je m'en doutait donc du coup globalement comment on fait ?
    0
  3. Siluni
     
    SELECT idUtilisateur
    FROM Donnee
    WHERE idPropriete IN (4, 5)
    AND (valeur = 'Gérard' OR valeur = 'Tartiflette')

    Voila les 2 solution, le IN ou le OR :)
    0
  4. Pommesky
     
    Tout d'abord merci beaucoup pour ta réponse, mais cela ne va pas vraiment car Tartiflette peut être associer à la propriété 4 OU 5 alors que je seulement les résultat qui on tartiflette avec l'id 5
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. loupius Messages postés 789 Statut Membre 148
     
    Siluni t'as donné les moyens d'arriver au résultat; tu aurais dû réfléchir quelque peu afin d'écrire tout simplement:
    (idPropriete = 4 AND valeur = Gérard) OR (idPropriete = 5 AND valeur = Tartiflette)
    Bonne réflexion.
    0