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 :

Match de foot joué


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Match de foot joué
    Bonsoir,

    j'ai quelques difficultés à faire une requête en SQL.

    l'énoncé est le suivant : elle doit renvoyée en colonne le PID, player_big.name, tid,tournament_big.name, mid et rassembler la liste des joueurs, des tournois et des matchs joués par le joueur dans le tournoi.
    j'ai besoin des tables :- player_big (PID, name)
    -registration_big(registrnum, PID)
    - game_big (TID,registrnum1, registrnum2, MID)
    - tournament_big(TID, name)

    j'ai fais ça -->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select pid,player_big.name, tournament_big.tid,tournament_big.name as tournois, MID 
    from atp.player_big 
    natural join atp.registration_big 
    join atp.game_big on registrNum=registrNum1 or registrNum=registrNum2 
    join atp.tournament_big on atp.tournament_big.tid=atp.game_big.tid;
    mais rien n'est renvoyé, je ne sais pas ce qui bloque.. de l'aide serait la bienvenue !

  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
    Quel est votre SGBD ?

    Plutôt que le natural join, préférez la jointure explicite avec INNER, LEFT ou RIGHT JOIN.

    Avez-vous un message d'erreur ?

    Que vous-est-il renvoyé exactement par le SGBD ?
    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
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    bonjour,

    Il faut également préciser quelles sont les cardinalités, et quels sont les index

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Bonjour, pouvez vous m expliquer la différence entre ces différentes jointures s il vous plaît
    Quesque le SGBD?
    Ça ne me renvoi rien, comme si c était une boucle infini..

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Le SGBD c'est le type de base de donnée (Système de Gestion de Base de Données)
    il faut le mentionner car certaines instructions SQL sont spécifiques à certains sGBD.
    Exemples de SGBD : Oracle, SQL Server, DB2, Sybase...

    Pour les jointures
    - natural join s'appuie sur les colonnes de memes noms et de même type des 2 tables
    à proscrire car si une des tables evolue, la requete ne produit plus le même résultat, et aussi,
    les temps de réponse risquent d'être complètement modifiés
    - inner join renvoit seulement les éléments en correspondance dans les 2 tables pour les critères de jointures
    - left ou right/outer join renvoit tous les éléments de la table inner, et facultativement, les élements de la table outer
    - full outer join fait un appareillage des 2 tables

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    D accord, du coup ça devrait être SQL server .
    Je pense que le problème est le join on entre registration et game, par quoi et comment puis je le remplacer?

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par lou93 Voir le message
    D accord, du coup ça devrait être SQL server .
    Je pense que le problème est le join on entre registration et game, par quoi et comment puis je le remplacer?
    Je réitère, pas de réponse pertinente possible sans connaitre les cardinalités ni les index

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Je ne sais pas ce que signifie cardinalité et index..

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Je suis désolé, mais il n'est pas du tout raisonnable de vouloir faire des requêtes sans connaitre les notions de SGBD, cardinalité, jointures et index.
    Le risque est de produire des résultats faux sans s'en rendre compte et/ou de sur-consommer la CPU au détriment des autres utilisateurs

    On ne conduit pas une voiture sans permis

    Le mieux est soit de demander à quelqu'un qui maitrise ces sujets, soit de se former à ces sujets

    Il existe sur ce forum des tutoriels qui peuvent aider

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    J aï commencé SQL il y a 2 semaines et mon professeur n a jamais abordé ces notions...

  11. #11
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Et bien c'est dommage car il faut commencer par là

    Le mieux est d'aller demander ces infos au prof qui se fera un plaisir d'expliquer (ou de re-expliquer) ces notions fondamentales et incontournables

  12. #12
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    On ne conduit pas une voiture sans permis
    A l'auto-école, si !

    Pour maitriser un sujet, il faut le pratiquer.
    Si pour pratiquer il fallait nécessairement maitriser, alors on serait face à un sacré paradoxe.


    Citation Envoyé par escartefigue Voir le message
    Le mieux est soit de demander à quelqu'un qui maitrise ces sujets, soit de se former à ces sujets
    C'est, me semble-t-il, ce que fait lou93 en venant poster son problème ici.

    @lou93, quel est le comportement que vous obtenez ?
    Est-ce que la requete tourne sans fin, ou est-ce que vous obtenez un résultat vide ?
    Êtes-vous certain de votre SGBD ? SQL Server n'accepte pas la syntaxe NATURAL JOIN...

  13. #13
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    A l'auto-école, si !

    Pour maitriser un sujet, il faut le pratiquer.
    Si pour pratiquer il fallait nécessairement maitriser, alors on serait face à un sacré paradoxe.
    Ce n'est pas du tout ce que j'ai dit, j'ai dit qu'il fallait connaitre les notions fondamentales pour pouvoir pratiquer ou se faire accompagner
    Pour rester dans l'analogie avec l'auto école, il y a dans ce cas un moniteur qui est présent pour accompagner et former

    Et la comme lou93 précise qu'il n'a jamais entendu parler de SGBD, ni de cardinalité, jointures et index, des échanges par forum n'y suffiront pas, il faut un accompagnement, une formation, ou l'appel à quelqu'un qui maitrise mais qui est présent à ses coté, comme dans une auto école

  14. #14
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Je serai toi, voici comment je procéderais pour trouver où peut etre le probleme :

    tu reprends ta requete de la facon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * 
    from atp.player_big 
    natural join atp.registration_big 
    join atp.game_big on registrNum=registrNum1 or registrNum=registrNum2 
    join atp.tournament_big on atp.tournament_big.tid=atp.game_big.tid;
    Tu remplaces ce natural join par une condition de jointure claire : inner join on colonne_player_big = colonne_registration
    et ensuite, tu joues ton résultat petit à petit.
    C'est à dire, tu lances d'abord la requete avec les deux premieres tables, et tu vois si ca te renvoie un resultat. Si oui, tu rajoutes la troisieme table (game_big), et enfin la quatrieme.

    Ainsi, tu pourras voir à quel moment est ce que ca coince. et nous, on sera peut etre plus à même de te conseiller
    Mais c'est sur que sans avoir toutes les données du probleme (quelle base, structure des table que tu utilises, index et cardinalité, ... ) on ne peut que te donner des pistes à explorer pour tenter de résoudre ton probleme.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/06/2014, 00h54
  2. Matchs de FOOT entre les SSII
    Par Invité dans le forum Humour Informatique
    Réponses: 3
    Dernier message: 02/08/2013, 10h55
  3. Réponses: 3
    Dernier message: 14/11/2012, 15h09
  4. Suivre la balle dans un match de foot
    Par Chatbour dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 08/03/2010, 18h54
  5. [TV] streaming pour les match de foot
    Par LhIaScZkTer dans le forum Films & TV
    Réponses: 9
    Dernier message: 23/06/2006, 10h46

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