IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Créer une vue complexe à partir d'une base de données


Sujet :

Requêtes MySQL

  1. #21
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Votre vue est agréée par MySQL, ça roule, et c’est la moindre des choses !
    Ce n'est pas ma vue, c'est la requête qu'avait proposé Exia93 avant de proposer celle avec la sous requête. Mais jamdinhe avait répondu :
    malheureusement la requête n'affiche toujours que les produits ayant des notes
    Et ça je ne comprend pas ! (je ne comprends pas non plus en quoi la sous requête résout ce problème...)
    Je soupçonne en fait que la clause vérifiant la validation(AND z.validation = 'oui') ait été ajoutée dans le WHERE, annulant ainsi l'effet de la jointure externe... (Exia93 avait dans le même post du 09/04/2014, 10h10 mis la requête sans la vérification de la validation des avis...)
    Jamdinhe, qu'en est-il ?


    Pour en revenir au GROUP BY
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,
    Il est vrai que selon la norme SQL:1999, chaque nom de colonne figurant dans la clause GROUP BY doit aussi figurer dans la clause SELECT (à moins de figurer en tant qu’argument dans une fonction d’agrégation). En l’occurrence, je fais référence à l’ouvrage de Peter Gulutzan et Truly Pelzer, SQL-99 Complete, Really, au paragraphe « Rules for Grouping Columns » aux pages 634, 635, cité aussi ici (« the Single-Value Rule » :

    You must follow “The Single-Value Rule” — every Column named in the select list must also be a grouping Column, unless it is an argument for one of the set functions.


    Je note en passant que les fonctions auxquelles il est fait allusion peuvent retourner des sacs plutôt de des ensembles, mais bon. Quoi qu’il en soit, quelqu’un sait-il où on en est avec la version SQL:2011 ?
    En fait, il semble que la version de 1999 incluait déjà cette subtilité.
    Il en est fait allusion dans cet article.

    Ci on se réfère à ce document, la partie 7.9 <group by clause> est relativement muette sur le sujet. En revanche, si on va plus loin (si toutefois il nous reste de l'aspirine ), la partie 7.11 <query specification>, la "syntax rule" numéro 13 nous indique :
    If T is a grouped table, then let G be the set consisting of every column referenced by a <column reference> contained in the <group by clause> immediately contained in <table expression>. In each <value expression>, each <column reference> that references a column of T shall reference some column C that is functionally dependent on G or shall be contained in a <set function specification>.

  2. #22
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir aieeeuuuuu


    Citation Envoyé par aieeeuuuuu Voir le message
    Ce n'est pas ma vue
    Rendons à César... De fait, je n’avais pas vu la réponse du collègue (post #6) d’où comme un quiproquo, et je vous prie de m’excuser.

    Citation Envoyé par aieeeuuuuu Voir le message
    En fait, il semble que la version de 1999 incluait déjà cette subtilité.
    Il en est fait allusion dans cet article.
    Merci pour l’article, l’auteur a eu bien du courage...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Retourner sur une vue 1 à partir d'une vue 2
    Par pitchu dans le forum Android
    Réponses: 2
    Dernier message: 24/04/2015, 22h21
  2. Réponses: 3
    Dernier message: 03/03/2015, 15h55
  3. Réponses: 8
    Dernier message: 16/02/2012, 22h23
  4. Réponses: 2
    Dernier message: 05/04/2009, 23h01
  5. Créer des clés informatiques à partir d'1 base de données??
    Par Flateric dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 11/02/2005, 07h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo