Partage
  • Partager sur Facebook
  • Partager sur Twitter

sélectionner des valeurs aléatoires avec jointure

Requête pour sélectionner des valeurs aléatoires avec jointure interne

Sujet résolu
    4 février 2023 à 14:27:03

    Bonjour

    J'ai trois tables dans ma base de données:

    clients: id, name, email, resort

                                        hotel A

                                        hotel B

    resorts: id, resort_name, address             

                 1  hotel A

                 2  hotel B

    rooms: id, resort_id, number

                    1             111

                    1             112

                    2             211

                    2             212

    je voudrais que lorsqu'un client réserve un hôtel grâce à un formulaire (par ex hôtel A) une chambre lié à l'hôtel choisi soit attribué aléatoirement,mais avec ma requête la chambre sélectionné ne correspond pas à obligatoirement à l'hôtel choisi parce-que je n'arrive à grouper les chambres d'hôtel et à faire un rand dans ce groupe.


    SELECT DISTINCT o.number
    FROM rooms o INNER JOIN
    resorts b
    ON b.id = o.resort_id INNER JOIN
    clients f
    ON f.resort = b.resort_name
    ORDER BYrand()
    LIMIT1;

    pourriez-vous m'aider

    merci.

    -
    Edité par AbcAbc6 4 février 2023 à 17:31:59

    • Partager sur Facebook
    • Partager sur Twitter
      4 février 2023 à 16:26:32

      Bonjour, merci d'écrire un titre de sujet en rapport avec votre problématique et d'utiliser le bouton code </> pour insérer du code sur le forum.

      Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Merci de modifier votre titre. Pour cela, éditez le premier message de votre sujet.

      (titre originel : problème avec une requête SQl)

      Liens conseillés

      Édit 17h30 : J'ai remplacé votre titre par votre sous titre. Non "requête SQL" n'est pas un titre valable nom plus.

      -
      Edité par AbcAbc6 4 février 2023 à 17:34:30

      • Partager sur Facebook
      • Partager sur Twitter
        4 février 2023 à 20:57:56

        Bonjour,

        Je pense avoir trouvé :

        SET @id_client = 1;
        
        SELECT o.numero, f.id, f.name
        FROM rooms AS o
        INNER JOIN resorts AS b
        ON b.id = o.resort_id
        INNER JOIN clients AS f
        ON f.resort = b.resort_name
        GROUP BY o.numero
        HAVING f.id = @id_client
        ORDER BY rand()
        LIMIT 1;

        Bien entendu il faudra donner à ta variable

        @id_client

         L'ID de ton client.

        Gadaa

        • Partager sur Facebook
        • Partager sur Twitter
          5 février 2023 à 17:37:26

          Merci à toi, cela fonctionne!
          • Partager sur Facebook
          • Partager sur Twitter

          sélectionner des valeurs aléatoires avec jointure

          × 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