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

Langage SQL Discussion :

Comment réaliser ma requête ?


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut Comment réaliser ma requête ?
    Bonjour,

    D'abord je veux savoir si cette requête est possible.

    J'ai une table tournoi avec nom et des données qui concernent ce tournoi donnée1, donnée2, donnée3, donnée4, donnée5. Cà ce sont les champs de la table tournoi.
    Exemple d'une ocurrence, voici les colonnes :
    tournoiFrance, endurance, puissance, vitesse, service, revers
    tournoiItalie, service, revers, coup_droit, voléé, fond_court...
    Voilà 2 exemples.

    J'ai ensuite une table joueur avec le nom et des carctéristiques pour chaque joueur (service, coup_droit, revers, volée, fond_court, endurance, puissance).
    Exemple d'occurence :
    Nadal, 15, 16, 15, 14, 18, 16, 15
    Federer 18, 19, 20, 15, 17, 18, 19...
    Voilà 2 exemples.

    Et une table qualification où sont inséré le nom des joueurs participants à un tournoi et le nom du tournoi. Exemple d'occurence
    tournoiFrance, Nadal
    tournoiFranceFederer...

    J'ai besoin de récupéré les statitsiques de chaque joueur présent dans la table qualification.
    Donc j'ai fait cette requête qui fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select joueur.nom,service,coup_droit,revers,puissance,endurance from joueur,qualification where joueur.nom = qualification.name
    Desormais je voudrais changer ma requête et inclure le fait de choisir les statistiques par rapport au tournoi. Je m'explique.
    Actuellement dans la table qualification il y a : tournoiFrance et Federer.
    Je voudrais qu'il aille chercher dans la table tournoi les données nécessaires, c'est à dire que pour tournoiFrance si on regarde dans la table il ya besoin de endurance, puissance, vitesse, service, revers. Et qu'il prenne ces colonnes dans la table joueur.

    Merci d'avance[/code]

  2. #2
    Membre régulier Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Points : 70
    Points
    70
    Par défaut
    Est ce que tu pourrais pas faire un truc du style...


    d'abord une requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM tournoi;
    Que tu stockes dans un tableau ou équivalent...

    ensuite tu éxecutes la requete que tu as pour tes joueurs... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT joueur.nom,qualification.nomtournoi, service, coup_droit, revers, volée, fond_court, endurance, puissance FROM joueur, qualification WHERE joueur.nom = qualification.nom;
    La tu boucles sur le nombre de resultat de cette requete et pour chaque enregistrement tu cherches dans ton tableau de tournoi les informations à afficher...

    ça doit pouvoir s'optimiser avec un GROUP BY sur le nom du tournoi même...

    Je sais pas si c'est compréhensible...
    Proverbe nain : On boira du lait le jour où les vaches mangeront du houblon !

    le site de ma douce et tendre

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Il serait plus "normal" de mettre les caractéristiques des tournois dans des lignes et non dans des colonnes, et du coup la question deviendrait très simple avec une jointure opur réponse.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    comment çà dans des lignes plutôt que des colonnes.
    Un tournoi demande des caractéristiques.
    Et un joueur possède c'est caractéristique.
    Pour le tournoi ce sont des données mais pour les joueurs ce sont des champs, c'est là que je bloque

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si c'était pour moi, je créerais une table Caractéristique(IdCaracteristique, Libelle, etc...) avec par exemple
    1, 'service'
    2, 'revers'
    3, 'coup_droit'
    etc.

    Et pour les tournois et les joueurs, une table d'association avec la caractéristique (ce qui aurait en plus l'avantage de pouvoir pondérer les liens)

    CaracteristiqueTournoi(IdTournoi, IdCaracteristique, Poids)
    CaracteristiqueJoueur(IdJoueur, IdCaracteristique, Valeur)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  6. #6
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    ok admettons.
    Mais qu'est ce que tu appelle une table d'association.
    Comment la créer.

    Parce que pour l'instant, un tournoi exige les caractéristiques 1, 2, 3. Ca me donne l'occurence suivante :
    tournoiFrance, 1, 2, 3

    Pour le joueur çà reste toujours pareil :
    nomJoueur, 15, 16, 17

    (15, 16, 17) étant la qu'il possède au service, coup_droit et revers.
    Ca bloque toujours ? Non ?

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Cela donnerait :
    Table CaracteristiqueTournoi (je n'ai pas mis le poids)
    TournoiFrance, 1
    TournoiFrance, 2
    TournoiFrance, 3

    Table CaracteristiqueJoueur
    nomJoueur, 1, 15
    nomJoueur, 2, 16
    nomJoueur, 3, 17
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  8. #8
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    Ok et par rapport à la requête de départ que je veux faire, cela donnerait quoi. La selection des valeurs du joueur la valeur qu'il a au service, au coup_droit, au revers, si cela est demandé par le nom du tournoi ?

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Une simple jointure sur les deux tables d'associations liés par l'IdCaractéristique (plus la table Caracteristique pour avoir les libellés) !
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  10. #10
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    Personne ne peut me montrer concrétement ce qu'il faut faire car je n'y arrive toujours pas.
    Je n'arrive pas a faire le lien entre tournoi et joueur;

Discussions similaires

  1. Comment réaliser cette requête
    Par nostrora dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/05/2012, 21h55
  2. [WD10] comment réaliser une requête dans une table
    Par abdoufama dans le forum WinDev
    Réponses: 4
    Dernier message: 10/06/2011, 05h48
  3. msi ou comment réaliser un installeur?
    Par herzleid dans le forum Delphi
    Réponses: 11
    Dernier message: 09/04/2007, 19h27
  4. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15

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