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 :

Vue - Approvisionnement d'un champs par Count()


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Vue - Approvisionnement d'un champs par Count()
    Bonjour,

    Merci tout d'abord aux personnes qui voudront bien me consacrer un peu de leur temps et partager leur connaissance avec moi.

    Pour illustrer mon propos deux tables fictives
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    -- Structure de la table `animaux`
    --
     
    CREATE TABLE `animaux` (
      `a_id` int(11) NOT NULL,
      `a_nom` varchar(255) NOT NULL,
      `a_fk_proprio` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table `animaux`
    --
     
    INSERT INTO `animaux` (`a_id`, `a_nom`, `a_fk_proprio`) VALUES
    (1, 'Medor', 2),
    (2, 'Isidore', 1),
    (3, 'Plume', 3),
    (4, 'Fatigue', 4),
    (5, 'Junior', 5),
    (6, 'Cacao', 5),
    (7, 'Filou', 2),
    (8, 'Chippie', 3),
    (9, 'Untsu', 1),
    (10, 'Sultan', 4),
    (11, 'Clochette', 2);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `proprietaires`
    --
     
    CREATE TABLE `proprietaires` (
      `p_id` int(11) NOT NULL,
      `p_nom` varchar(20) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table `proprietaires`
    --
     
    INSERT INTO `proprietaires` (`p_id`, `p_nom`) VALUES
    (1, 'Alain'),
    (2, 'Bernard'),
    (3, 'Beatrice'),
    (4, 'Yannick'),
    (5, 'Monique');
    Ici, deux tables une "propriétaire" et une autre "animaux". "a_fk_proprio" est la clef primaire qui permet de lier un animal à son propriétaire dans la table "propriétaire". J'aimerai créer une vue qui liste l'id du propriétaire (alias "id"), le nom du propriétaire (alias "proprio") et le nombre d'animaux qui lui sont reliés (alias "n_animaux"). Pour cela je voulais utiliser la fonction sql count() mais je n'arrive pas à écrire l'instruction sql adéquate.

    Bien cordialement,

    tiogran

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Il te faut un regroupement sur la table animaux et une jointure avec la table proprietaires.

    Montre la requête que tu as construite en détaillant où tu rencontres un problème :
    Erreur de syntaxe ? Précise le message retourné par le SGBD
    Résultat erroné ? Donne un exemple en expliquant en quoi le résultat reçu est faux.
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse,

    Ma tentative pour l'instant est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) FROM `animaux` GROUP BY `a_fk_proprio` ]
    où j'ai effectivement bien un résultat correspondant au nombre d'animaux par propriétaire

    Puis je me dis que je peux rajouter l'id du proprio via la clé étrangère comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `a_fk_proprio`, count(*) FROM `animaux` GROUP BY `a_fk_proprio`
    Mais là ou ma compréhension bloque c'est qu'à la base je veux faire un select sur la table "propriétaire" et non "animaux" afin de me réserver la possibilité d'effectuer des jointures entre "propriétaires" et d'autres tables

    tiogran

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Rebonjour,

    Je ne sais pas si c'est l'usage de reposter mais prenant compte de tes conseils et notamment par l'ajout d'une jointure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT `proprietaires`.`p_nom`, count(*) FROM `animaux` 
                 INNER JOIN `proprietaires` ON `proprietaires`.`p_id` = `animaux`.`a_fk_proprio`
                 GROUP BY `animaux`.`a_fk_proprio`
    Effectivement, j'ai le résultat désiré

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci de ton aide en tout cas, tu as embelli ma journée et pas que par ton post, le ti bout en photo est génialissime.
    @+

    tiogran

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

Discussions similaires

  1. Quel SGBD peut gérer plus de 2000 champs par table?
    Par colorid dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/11/2005, 20h58
  2. vba actualisé un champ par un autre a l ouverture
    Par rollly dans le forum Access
    Réponses: 9
    Dernier message: 24/09/2005, 12h31
  3. [HTML] Longueur maximum d'un champs par POST
    Par papyphp dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 01/09/2005, 15h24
  4. [débutant]Desactiver des champs par rapport a un select
    Par Pymm dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2005, 16h24
  5. remplacer des espaces dans un champ par des zero
    Par yeep dans le forum Access
    Réponses: 4
    Dernier message: 08/10/2004, 09h41

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