Partage
  • Partager sur Facebook
  • Partager sur Twitter

affichage de toutes les salles non reservées

    18 janvier 2023 à 16:25:04

    je n'arrive pas a trouver la requête qui me permettrai d'afficher les salles libres dans ma table locations.

    Dans la table location , il n'y a que les salles réservées mais selon un créneau horaire , j'aimerai afficher toutes les salles disponibles

    j'ai essayé plein de requêtes mais elle ne m'affiche que les salles réservées 

    cela m affiche le nom, le lieu, id_client, la date de debut et la date de fin de ce qui se trouve dans la table locations
    SELECT *
    FROM salles
    INNER JOIN locations ON salles.IdSalle = locations.IdSalle;
    
    ceci m affiche toutes les salles qui ne sont pas reservées
    select * from salles WHERE NOT EXISTS (SELECT * FROM locations WHERE salles.IdSalle=locations.IdSalle)
    
    
    ceci m affiche toutes les reservations indiquées par l heure en dur mais avec un id-sall ==null et inferieur à la date en dur 
    select * from locations WHERE NOT EXISTS (SELECT * FROM salles WHERE salles.IdSalle=locations.IdSalle and locations.DateDebut > '2022-01-27')
    
    ceci m affiche toutes les reservations avec l id salle NULL ( donc affiche uniquement les vehicues ayant un id attribué )
    select * from locations WHERE NOT EXISTS (SELECT * FROM salles WHERE salles.IdSalle=locations.IdSalle)
    
    ceci m affiche le mm resultat que la requete ligne 10, je ne comprend pas pourquoi
    select * from locations WHERE NOT EXISTS (SELECT * FROM salles WHERE salles.IdSalle<>locations.IdSalle and locations.DateDebut > '2022-01-27')
    
    ceci m affiche les salles reservées
    select nom, lieu from salles where IdSalle in(select IdSalle from locations )
    
    ceci m affiche les salles reservées avec la date demandé en dur 
    select nom, lieu from salles where IdSalle in(select IdSalle from locations WHERE salles.IdSalle=locations.IdSalle and locations.DateDebut <> '2023-02-25 14:10:00')
    
    cela me donne les 2 salles de réservées
    SELECT *
    FROM   salles
           INNER JOIN locations
                   ON salles.IdSalle = locations.IdSalle
    
    me retourne toutes les reservations passées
    SELECT *
    FROM locations
    WHERE DateDebut < CURDATE() ;
    
    affiche la salle qui est reservé a une date inférieur   a ce jour 
    SELECT *
      FROM salles
     WHERE IdSalle IN (SELECT IdSalle
                    FROM locations
                   WHERE Datedebut< curdate())		
    			   			   
    affiche les salles inferieur à la date indiquéee en dur 			   
    SELECT *
      FROM salles
     WHERE IdSalle IN (SELECT IdSalle
                    FROM locations
                   WHERE Datedebut< 2023-02-26 ) 
    			   
    			   
    m affiche les 2 salles, resultats pas correct car une des salles est deja reservé dans la BDD 			   
    SELECT *
      FROM salles
     WHERE IdSalle IN (SELECT IdSalle
                    FROM locations
                   WHERE  Datedebut <= '2023-02-26 12:20:12' and dateFin >='2023-02-09 11:06:50')
     			   



    • Partager sur Facebook
    • Partager sur Twitter
      4 février 2023 à 21:18:44

      Bonjour,

      Pourrait-on avoir tes tables ? ça sera plus simple pour se projeter.

      D'avance merci,

      Gadaa

      • Partager sur Facebook
      • Partager sur Twitter
        6 février 2023 à 11:22:48

        Bonjour

        Problème résolu avec une requête between et not null

        • Partager sur Facebook
        • Partager sur Twitter

        affichage de toutes les salles non reservées

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown