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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu] Comment obtenir le résultat -opposé- d'un SELECT ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Comment obtenir le résultat -opposé- d'un SELECT ?

n°1040984
Master_Jul
Posté le 09-04-2005 à 10:08:27  profilanswer
 

Bonjour,
 
J'ai une tablle SALLE et une table EDT (emploi du temps).
 
J'aimerais afficher la liste des salles disponibles à une heure donnée de la semaine. Ce sont donc des lignes qui "n'apparaissent pas" dans EDT. Je ne sais pas trop comment faire pour réaliser cette requête. Il faudrait que je fasse un SELECT par salle (il y en a une centaine) et que si le nombre de résultat est nul, je mémorise cette salle comme étant bonne.
 
Mon autre idée étant de faire l'inverse, récupérer le listing de toutes les salles prises à un moment donné et de conclure que les salles libres sont les salles qui existent moins les salles trouvées (occupées) à ce moment. Je ne sais pas si c'est possible directement en SQL, je ne pense pas. Il faudrait alors que je fasse cette "soustraction" à partir de ma liste complète.


Message édité par Master_Jul le 09-04-2005 à 10:31:07
mood
Publicité
Posté le 09-04-2005 à 10:08:27  profilanswer
 

n°1040989
Beegee
Posté le 09-04-2005 à 10:23:09  profilanswer
 

La soustraction (sous Oracle) :
 

Code :
  1. SELECT SALLE_ID
  2. FROM SALLE
  3. MINUS
  4. SELECT SALLE_ID
  5. FROM EDT
  6. WHERE DATE = <ma date>;


 
Sinon, si le SGBD le permet, utilise NOT EXISTS :
 

Code :
  1. SELECT s.SALLE_ID
  2. FROM SALLE s
  3. WHERE NOT EXISTS
  4. (SELECT 1
  5. FROM EDT e
  6. WHERE e.SALLE_ID = s.SALLE_ID
  7. AND e.DATE = <ma date> );


 
Et si le SGBD ne le permet pas, tu peux toujours utiliser une jointure externe :
 

Code :
  1. SELECT s.SALLE_ID
  2. FROM SALLE s
  3. LEFT JOIN EDT e ON e.SALLE_ID = s.SALLE_ID
  4. WHERE e.DATE = <ma date>
  5. AND e.SALLE_ID IS NULL;

n°1040994
Master_Jul
Posté le 09-04-2005 à 10:30:48  profilanswer
 

Merci pour ces réponses Beegee !
 
Le SGBD étant 4.1.9-Max, j'ai pu utiliser le NOT EXISTS et les  SELECT imbriqués. :)


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

  [Résolu] Comment obtenir le résultat -opposé- d'un SELECT ?

 

Sujets relatifs
Sauver plusieurs éléments de ma requête SQL dans un vecteur [RESOLU][MySQL] Comment éviter une requete de type : Select ... Where .. IN .?
[Resolu] Asp/Java script pb de variable[JAVA] Applet qui continue à tourner apres la fermeture web.[RESOLU]
[résolu][wxWidgets]Sauvegarde dans un fichier...[RESOLU] recevoir des paquets sans la libpcap
Champs SELECT et survol par un DIV, dans IE[résolu] gérer l'évènement click et plusieurs TIWGrid
[ VB.net ] type socket non défini [Résolu][Eclipse] Problème mise à jour [résolu]
Plus de sujets relatifs à : [Résolu] Comment obtenir le résultat -opposé- d'un SELECT ?


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