Partage
  • Partager sur Facebook
  • Partager sur Twitter

SVP Ruquet SQL

Incompréhensible Ruquet !?

Sujet résolu
    13 septembre 2017 à 3:30:35

    Bonjour a tous :)

    j'ai bien essayer de comprendre cette ruquet malheureusement je n'ai rien compris

    s'il y a une réponse plus claire que cette charabia!

    BDD : U(NumU, NomU, VilleU)
              P(NumP, NomP, Couleur, Poids)
              F(NumF, NomF, Statut, VilleF)
              PUF(NumP, NumU, NumF, Quantité)

    Q : Donnez les numéros des produits qui sont livrés à toutes les usines de Paris

    R : SELECT Np FROM PUF WHERE NOT EXISTS(SELECT Nu FROM U WHERE NOT EXISTS

          (SELECT * FROM PUF WHERE NOT (Ville=‘Paris’) OR (P.Np=PUF.Np AND U.Nu=PUF.Nu))

    Merci d'avance

    Coordialement Med Amin.

    • Partager sur Facebook
    • Partager sur Twitter
      13 septembre 2017 à 8:57:38

      Bonjour,

      Juste pour info, les noms de colonne de la requête ne correspondent pas aux noms de colonnes que tu donnes dans ton schéma ...

      Après, pour comprendre il faut décortiquer, en commençant par les sous-requêtes.

      Mais si tu commences à apprendre le SQL, ce n'est sûrement pas la meilleure façon de voir les choses ...

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        13 septembre 2017 à 17:03:47

        Merci Mr Benzouye mais les colonnes de la ruquet sont correspondant aux de schéma,

        et voila le lien de cet exercice :

        http://www.cours-gratuit.com/langage-sql/exercice-langage-sql-les-livraisons-partie-1

        le problème c'est la difficulté  de comprendre cette réponse SQL :(

        • Partager sur Facebook
        • Partager sur Twitter
          13 septembre 2017 à 17:19:07

          medamin1 a écrit:

          les colonnes de la ruquet sont correspondant aux de schéma

          Bah non ... Essayes d'exécuter ces requêtes sur une base de données et tu auras de belles erreurs "Unknown column in field list" ...

          Par exemple, la colonne "Ville" n'existe pas, c'est "VilleF" ou "VilleU" ... enfin ce n'est pas important, on comprend le principe ... Mais permet moi de remettre en cause cet exercice qui est "bâclé" !

          Au passage, dans le lien donné je ne vois pas la question de départ : "Donnez les numéros des produits qui sont livrés à toutes les usines de Paris" ...

          Si je devais répondre à cette question je ferais :

          SELECT PUF.NumP
          FROM
          	PUF
          		INNER JOIN U
          			ON PUF.NumU = U.NumU
          WHERE U.VilleU = 'Paris'
          GROUP BY PUF.NumP
          HAVING COUNT( DISTINCT PUF.NumU ) = (
          	-- Nombre d'usines à Paris
          	SELECT COUNT(*) AS nb_usines
          	FROM U
          	WHERE VilleU = 'Paris'
          )

          Dans une sous-requête on compte le nombre d'usines à Paris, que l'on compare au nombre d'usines à Paris livrés par produit (avec un DISTINCT pour éviter les doublons par fournisseur, un même produit livré à la même usine par plusieurs fournisseurs différents).

          -
          Edité par Benzouye 13 septembre 2017 à 17:21:11

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            14 septembre 2017 à 13:09:09

            Bonjour Mr Benzouye,

            je vous remercie infiniment Monsieur Benzouye :)

            je m'excuse j'ai trompé de copier le lien parce que j'ai été ouvre plusieurs pages, et voilà le lien (la question - 20):

            http://www.cours-gratuit.com/langage-sql/exercice-langage-sql-les-livraisons-partie-3

            votre réponse à la requête SQL été plus claire et plus logique que  du site , je l'ai bien compris ;)

            merci d’avance

            Cordialement Med Amin.

            • Partager sur Facebook
            • Partager sur Twitter
              14 septembre 2017 à 13:58:24

              Ma remarque sur la qualité de ces exercices reste la même ... Ils ne sont pas terribles voire obsolètes ...

              Enfin ...

              Sinon, tu as une question supplémentaire ?

              Si oui, laquelle, si non tu peux passer le sujet à résolu (bouton en haut à droite du sujet) ;)

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                14 septembre 2017 à 17:09:28

                Merci beaucoup Monsieur Benzouye,

                oui j'ai des questions,

                s' il y a un site des exercices corrigées  mieux ?

                et je fais les exercices sur papier est-ce-que t'une pratique façonne pour bien apprendre les requêtes SQL

                ou bien il faut que je les taper sur machine ?

                Merci d'avance

                Cordialement

                Med Amin.

                • Partager sur Facebook
                • Partager sur Twitter
                  14 septembre 2017 à 23:01:51

                  Regardes le cours MySQL ici, cf. Ma signature. 

                  Et oui c'est mieux de tester avec une vraie base, tu peux voir le résultat de tes requêtes. ..

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    15 septembre 2017 à 0:17:57

                    Merci infiniment Monsieur Benzouye  :)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    SVP Ruquet SQL

                    × 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