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 :

Lier deux requêtes SQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 18
    Par défaut Lier deux requêtes SQL
    Salut à tous, j'ai un problème qui me bloque un peu sur mes 2 requêtes

    Première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT boissonId, ROUND(AVG(pacasier)) AS prix, SUM(qte), SUM(montant) 
    FROM produit 
    GROUP BY boissonId
    Deuxième requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT design, idBoisson FROM boisson ORDER BY idBoisson
    J'aimerai simplement lier ces deux requêtes à travers idBoisson et boissonId !
    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Et où est le problème?
    Il suffit de faire une jointure sur les deux tables : tu mets tes deux tables dans le FROM et tu ajoutes la jointure sur idBoisson = boissonId dans le WHERE, et ça devrait rouler.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 18
    Par défaut
    Merci d'avoir répondu. Le problèque ce sont les fonctions(ROUND, AVG, SUM...). Quand je fais la requête sans elle ça marche bien. Mais il suffit que je les rajoute et je reçois un message d'erreur.
    Alors stp envois-moi un code tel que tu as parlé je vais tester.
    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Et quelle est donc cette erreur rencontrée ?
    Il faut à minima un jeu de test, la requête que vous avez construit, l'erreur remontée pour que l'on puisse vous aidez.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Citation Envoyé par Holynola Voir le message
    je reçois un message d'erreur.
    Sans connaître la requête exécutée ni le message d'erreur qu'elle déclenche, il est difficile de t'aider.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 18
    Par défaut
    Voici ce que j'essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT boisson.design, boisson.idBoisson, produit.boissonId, ROUND(AVG(produit.pacasier)) AS prix, SUM(produit.qte) AS qt, SUM(produit.montant) AS mt FROM boisson, produit WHERE boisson.idBoisson = produit.boissonId ORDER BY boisson.design
    Et voici l'erreur :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1140 In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'kima.boisson.design'; this is incompatible with sql_mode=only_full_group_by

  7. #7
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Le message d'erreur semble pourtant assez clair "In aggregated query without GROUP BY"

    Les fonctions d'agrégat nécessitent l'utilisation de la clause GROUP BY pour regrouper le résultat sur les champs non-agrégés
    C'est ce que vous avez fait pour votre première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT boissonId, ROUND(AVG(pacasier)) AS prix, SUM(qte), SUM(montant) 
    FROM produit 
    GROUP BY boissonId
    Dans votre second test, le GROUP BY n'apparaît plus et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT boisson.design, boisson.idBoisson, produit.boissonId, ROUND(AVG(produit.pacasier)) AS prix, SUM(produit.qte) AS qt, SUM(produit.montant) AS mt 
    FROM boisson, produit 
    WHERE boisson.idBoisson = produit.boissonId 
    ORDER BY boisson.design
    Commencez donc par l'ajouter pour voir si cela est mieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. regrouper deux requêtes sql en un seul
    Par eddjalal dans le forum Développement
    Réponses: 0
    Dernier message: 14/01/2011, 15h47
  2. Deux requêtes SQL en une
    Par lionrouge dans le forum SQL
    Réponses: 6
    Dernier message: 18/11/2010, 08h51
  3. [MySQL] Comment lier deux tables sql
    Par orphen dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/09/2010, 21h05
  4. [SQL] Deux requêtes SQL sur le même formulaire
    Par amazircool dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/02/2007, 02h23
  5. exécuter deux requêtes SQL à partir d'un bouton de commande
    Par Platon93 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/12/2006, 17h57

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