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

MySQL Discussion :

Query OK, 0 rows affected (0.50 sec) Records: 0 Duplicates: 0 Warnings: 0


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut Query OK, 0 rows affected (0.50 sec) Records: 0 Duplicates: 0 Warnings: 0
    je n'arrive pas à trouver la solution sur internet, alors j'ai besoin de votre aide.

    Voici ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT a.pere, b.pere AS papa, a.idche, a.total_chev
    FROM pturf1.scoring_cheval AS a
    left JOIN  pturf1.partant AS b ON a.pere=b.pere
    WHERE a.pere<>b.pere
    ORDER BY a.total_chev DESC ;
    Voici la réponse de ma requête: Query OK, 0 rows affected (0.50 sec) Records: 0 Duplicates: 0 Warnings: 0

    Je pense s'avoir d'où vient le probleme:
    La colonne père dans la table pturf1.scoring_cheval les noms ont souvent l'indicatif du pays, exemple : "Armorica (IRE)" tandis que dans la table pturf1.partant le nom est écrit sans l'indicatif du pays "Armorica"... En même temps quand je fait une recherche manuel "Armorica" je le trouve , pas besoin de noter l'orthographe exacte "Armorica (IRE)"

    Je ne sais pas si j'ai peut être compréhensible

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    Je pense s'avoir d'où vient le probleme:
    La colonne père dans la table pturf1.scoring_cheval les noms ont souvent l'indicatif du pays, exemple : "Armorica (IRE)" tandis que dans la table pturf1.partant le nom est écrit sans l'indicatif du pays "Armorica"... En même temps quand je fait une recherche manuel "Armorica" je le trouve , pas besoin de noter l'orthographe exacte "Armorica (IRE)"
    Pour avoir à la fois "Armorica" et "Armorica (IRE)", il faut utiliser un LIKE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT les, colonnes
    FROM la_table
    WHERE nom LIKE 'Armorica%'
    Donc si j'ai compris votre souci, votre requête devrait ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT a.pere, b.pere AS papa, a.idche, a.total_chev
    FROM pturf1.scoring_cheval AS a
    left JOIN  pturf1.partant AS b ON a.pere LIKE CONCAT(b.pere, '%')
    WHERE a.pere<>b.pere
    ORDER BY a.total_chev DESC ;
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Il faut aussi sortir le test a.pere<>b.pere du WHERE pour le mettre dans la jointure, sinon celle-ci passe de jointure externe en jointure interne.

    Tatayo.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Je n'avais pas fait attention à ça mais il y a un souci de logique : on cherche l'égalité dans la jointure et on l'interdit dans la restriction (WHERE) ! Pas étonnant que cette requête ne donne aucune ligne !

    Quel est le but de cette requête ? Rechercher le père d'un cheval ? Il devrait donc y avoir une colonne identifiant le cheval à mettre en regard de la colonne identifiant le père. Là vous sortez deux fois la même colonne. C'est votre jointure qui est probablement fausse si j'ai correctement interprété ce que vous souhaitez faire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut Bonsoir CinePhil et tatayo
    Merci de votre retour.
    En effet il faut sortir WHERE a.pere<>b.pere. Cela dit quand j'exécute la requête telle que @CinePhil à suggérée bien entendu sans la clause Where
    J'obtiens 153954 lignes, hors il y à 16 partants dans la table pturf1.partant donc le résultat de la requête doit me sortir une table avec 16 lignes !!!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT a.pere, b.pere AS papa, a.idche, a.total_chev
    FROM pturf1.scoring_cheval AS a
    left JOIN  pturf1.partant AS b ON a.pere LIKE CONCAT(b.pere, '%')
    ORDER BY a.total_chev DESC ;
    Query OK, 153954 rows affected (2.05 sec)
    Records: 153954 Duplicates: 0 Warnings: 0

    Mystère et boule de gomme pour moi...

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut
    LA TABLE PARTANTS : pturf1.partant

    jour dist cheval pere mere
    2020-01-03 1500 Jeremiade Tin horse Mowaajaha
    2020-01-03 1500 Dusk Till Down Sri putra Cormeilles
    2020-01-03 1500 Armorica (IRE) Elusive city Afya
    2020-01-03 1500 Showtime Star GB Byron Piddies pride
    2020-01-03 1500 Dawn Promise Elusive city Nice matin
    2020-01-03 1500 Senza Fine Reliable man Seltitude
    2020-01-03 1500 As d'Artois Medecis Vallabelle
    2020-01-03 1500 Storming Out Reckless abandon Shomus
    2020-01-03 1500 Brooke (GB) Turtle bowl Dreamette
    2020-01-03 1500 Copacetic IRE Lawman Ares flight
    2020-01-03 1500 Inevitable Hermann GB Kheleyf Real emotion
    2020-01-03 1500 Nikaki George vancouver Gotdream
    2020-01-03 1500 Joe The Tinker George vancouver Louve rouge
    2020-01-03 1500 Split Step (GB) Bahamian bounty Nellie gwyn
    2020-01-03 1500 Interstellaire Tin horse Billette
    2020-01-03 1500 Colibri Caël Fuisse Dallia



    LA TABLE SCORING : pturf1.scoring_cheval

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM pturf1.scoring_cheval limit 10;
    pere total_chev
    Siver Cloud (GER) 0.0000
    Princess Ida (SAF) 0.0000
    Soie 5.0000
    Levanter 0.0000
    Skiperia 19.0000
    Always Kitten (USA) 0.0000
    Pavana (GER) 8.0000
    Piroschka GER 0.0000
    Super Clan IRE 3.0000
    Mr.Commons USA 2.0000

  7. #7
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 891
    Par défaut
    Salut à tous.

    Vous avez un problème de modélisation de votre base de données.

    Vous devriez extraire de vos deux tables "partant" et "scoring" tous vos chevaux, en les plaçant dans une table de nom "cheval".
    Vous créez trois colonnes qui sont :
    --> le nom du cheval
    --> son pays
    --> son sexe
    --> pointeur vers le père
    --> pointeur vers la mère.

    Si vous ne connaissez pas le père ou la mère, vous marquez la colonne à NULL.

    Vous créez aussi une table des courses.
    Ben oui, vous n'avez pas, dans une hippodrome, une course par journée.

    J'ai l'impression que vous ne savez pas comment se nomme les protagoniste du terme générique qui désigne l'espèce cheval ?
    Le mâle, c'est l'étalon car c'est un reproducteur.
    La femelle est la jument.
    Le petit, c'est le poulain.
    Et le mâle castré se nomme un Hongre.

    La table des partants est une table association entre les courses et les chevaux.
    Pour une course donnée, vous indiquez la liste des participants.

    Pour votre requête, vous devez créer des jointures.
    La table principale est la table des "partants".
    Une jointure vers la table des "scoring".
    Une jointure vers la table des chevaux, en extrayant le père.
    Une jointure vers la table des chevaux, en extrayant la mère.

    Il n'y aura pas de confusion entre tel père et tel mère car ce sont les jointures de votre requête qui vont les déterminer.
    Et la performance sera bien meilleur, car vous partez des chevaux d'une course, donc d'un sous-ensemble réduit.

    @+

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Bonjour CinePhil,

    je suis Hongrois et c'est avec beaucoup d'effort que j'essaye d'écrire en Français, enfin j'espérais... Avant que vous me fassiez la remarque d'écrire en français, ce malgré*mon effort. Finalement*j'ai l'impression d'écrire en hongrois... ** ***

    Citation Envoyé par Artemus24 Voir le message
    Je constate non seulement vous maitrisé votre sujet et en plus les courses hippiques... merci pour votre réponse très pertinent.

  9. #9
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    je suis Hongrois et c'est avec beaucoup d'effort que j'essaye d'écrire en Français, enfin j'espérais... Avant que vous me fassiez la remarque d'écrire en français, ce malgré*mon effort. Finalement*j'ai l'impression d'écrire en hongrois...
    Ce n'était nullement une remarque sur la qualité de votre expression en français mais simplement une demande pour avoir une expression de besoin textuelle et non pas un simple tableau de résultats comme aurait pu le laisser penser ma première phrase. Du coup c'est moi qui me suis mal exprimé !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 617
    Billets dans le blog
    10
    Par défaut
    Effectivement, la modélisation laisse à désirer : répéter la date et la distance pour chaque partant d'une course ne serait pertinent que si la date de départ et la distance parcourue dépendaient du partant
    Ces attributs doivent donc être déplacés dans la table "course", voire, dans la table "réunion" comme proposé dans le modèle ci-après :
    https://www.developpez.net/forums/d1...ses-hippiques/

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2020
    Messages : 12
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Ce n'était nullement une remarque sur la qualité de votre expression en français mais simplement une demande pour avoir une expression de besoin textuelle et non pas un simple tableau de résultats comme aurait pu le laisser penser ma première phrase. Du coup c'est moi qui me suis mal exprimé !
    Ma demande textuelle est: A partir de ma table partant, sélection la colonne du père et fait un jointure avec la table scoring (ON a.pere=b.pere) pour me donner le " total_chev " de chaque père qui se trouve dans la table partant.

  12. #12
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 617
    Billets dans le blog
    10
    Par défaut
    Que représente TOTAL_CHEV ?

Discussions similaires

  1. nombre de 'Rows' affectées par un DELETE
    Par SergioMaster dans le forum SQL
    Réponses: 1
    Dernier message: 09/11/2012, 13h07
  2. Inhiber l'affichage des noms de champs en cas de "0 rows affected"
    Par bros_70 dans le forum Adaptive Server Enterprise
    Réponses: 7
    Dernier message: 03/06/2011, 16h00
  3. Affecter une valeur NULL à un paramètre d'un Query ?
    Par Targan dans le forum Débuter
    Réponses: 10
    Dernier message: 18/06/2009, 13h55
  4. Réponses: 2
    Dernier message: 17/06/2008, 20h40
  5. Problème: "Query returns more than one row"
    Par ctobini dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/09/2007, 11h48

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