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

  1. #1
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    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. Autoentrepreneur.
    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 éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    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. Autoentrepreneur.
    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
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Et que cherchez-vous à obtenir comme résultat ? Quel est votre besoin, exprimé en français ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    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 381
    Points : 19 065
    Points
    19 065
    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.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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.

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    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. Autoentrepreneur.
    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 !

  11. #11
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    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/

  12. #12
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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.

  13. #13
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Que représente TOTAL_CHEV ?

  14. #14
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Que représente TOTAL_CHEV ?
    TOTAL_CHEV est la colonne qui est présent dans la table pturf1.scoring_cheval qui est le résultat des scores de performances du père.

  15. #15
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Il y a de grosses difficultés pour répondre à votre besoin, difficultés liées à la modélisation comme expliqué plus haut, mais aussi au contenu.

    Par exemple, dans la table ci-dessous, le code pays est parfois entre parenthèses, parfois non.
    Du coup, comment deviner à partir de quel caractère il faut ignorer la suite du nom...
    Par exemple, "Super Clan IRE " pourrait être le nom du cheval, pourquoi pas
    Est on certain que le code pays n'est pas des fois au début, voire, au milieu

    Dans tous les cas, rapprocher des éléments de deux ensembles sur des chaînes de caractères est hasardeux, mais là en plus, les contenus ne sont pas symétriques...
    La fiabilité du résultat ne sera jamais parfaite.

    Si vous en avez la possibilité, revoyez totalement le modèle de données en vous inspirant du lien que j'ai mis plus haut, ça permettra également de fiabiliser le résultat car vous rapprocherez les données sur des identifiants, pas sur des libellés.


    Citation Envoyé par sobay06 Voir le message
    LA TABLE SCORING : pturf1.scoring_cheval

    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

  16. #16
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    Par défaut
    J'ai compris et entièrement d'accord j'ai du travail .

  17. #17
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Plus de travail au départ en effet, mais c'est tellement plus simple et plus fiable après, que le jeu en vaut la chandelle

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