Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2709 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SQL pour un unique id

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête SQL pour un unique id

n°2033253
Pommesky
try your life
Posté le 30-10-2010 à 10:24:45  profilanswer
 

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 ?

mood
Publicité
Posté le 30-10-2010 à 10:24:45  profilanswer
 

n°2033289
mrbebert
Posté le 30-10-2010 à 20:06:20  profilanswer
 

Déjà, ça m'étonnerait forcément que cette requête retourne une ligne qui puisse vérifier idPropriete=4 AND idPropriete=5 :D  
 
Plutôt quelque chose dans ce genre :
SELECT idUtilisateur
FROM Donnee
WHERE (idPropriete = 4 AND valeur = Gérard) OR (idPropriete = 5 AND valeur = Tartiflette)

n°2033290
Pommesky
try your life
Posté le 30-10-2010 à 20:42:11  profilanswer
 

oui je me suis rendu compte de sa ^^
requête que vous proposé ne marche pas non plus, car je récolterais les id pour une OU l'autre des conditions et non pas les deux

n°2033293
mrbebert
Posté le 30-10-2010 à 22:41:44  profilanswer
 

:heink:  
Non, tu récupéres toute les lignes qui respectent au moins l'une des conditions [:proy]

n°2033532
Oliiii
Posté le 02-11-2010 à 09:58:53  profilanswer
 

Si tu dois trouver les idUtilisateur qui ont a la fois idPropriete 4/Gerard et idPropriete 5/tartiflette tu vas devoir faire un join sur la table avec elle meme.
 
Un truc dans ce genre la:

Code :
  1. SELECT a.idUtilisateur
  2. FROM Donnee a
  3. JOIN Donne b ON a.idUtilisateur = b.idUtilisateur AND b.idPropriete = 4 AND b.valeur = Gerard
  4. WHERE a.idPropriete = 5 AND a.valeur = Tartiflette


 
Il y a probablement moyen de faire ca sans le Join, avec quelque chose comme ca (j'ai pas essayé donc c +- au pif :) ):

Code :
  1. SELECT idUtilisateur
  2. FROM Donnee
  3. WHERE (idPropriete = 4 AND valeur = Gérard) OR (idPropriete = 5 AND valeur = Tartiflette)
  4. GROUP BY idUtilisateur
  5. HAVING Count(*) > 1


Ca ne marchera bien que si idPropriete + valeur = record unique.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SQL pour un unique id

 

Sujets relatifs
[SQL] Base chez Free intérogée par autre site[SQL][Qt] Requet pour compter les colonnes ?
[PL/SQL] Aditeur avec coloration syntaxiqueProblème de requête
Requete SQL sur date PHPPB SQL
pb de requete sur plusieurs tablesRequêtes SQL et commentaires
Requete SQL sélectionnant le plus petit nombre unique 
Plus de sujets relatifs à : Requête SQL pour un unique id


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR