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 :

Aide pour jointure sur trois tables


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut Aide pour jointure sur trois tables
    Bonjour à tous,

    Les jointures ne sont pas ma tasse de thé
    Cela fait plusieurs jours que je planche sur le sujet sans parvenir au résultat.

    Voici mon problème :

    Je réalise un jeu de quizz

    J'ai 3 tables :

    shop_master : id_master, question, r1,v1,r2,v2,r3,v3,r4,v4,master_pseudo


    shop_master est la table des questions avec 4 possibilités de réponses ( r1, r2, r3, r4 ). Les champs v1 à v4 indiquent la bonne réponse; celle-ci étant égale à Y ( les autres champs étant vides )

    shop_alea : id_alea, n1,n2,n3,n4,n5,n6


    Dans shop_alea , n1 à n5 enregistrent le tirage aléatoire de 5 id_master différents. n6 enregistre le pseudo du joueur.

    shop_tour1 : pseudo1,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d3,d4,e1,e2,e3,e4,score

    J'enregistre dans shop_tour1 le choix du joueur sur les 4 réponses possibles de chacune des 5 questions.
    a1,a2,a3 et a4 correspondent par exemple à l'enregistrement du choix du joueur pour la question enregistrée dans shop_alea en n1. Le choix de sa réponse est enregistré à Y alors que les autres champs sont vides.
    b1,b2,b3 et b4 correspondent à l'enregistrement du choix du joueur pour la question n2 , etc...
    Donc, si a1=v1, a2=v2 ,a3=v3 , a4=v4 alors la réponse est bonne sinon la réponse est fausse.

    Je veux compter le nombre de bonnes réponses du joueur et enregistrer le résultat dans score.

    Je pense qu'il faut réaliser une jointure mais là, je suis dépassé
    www.masterquizz.fr - Ne vous posez plus de questions

  2. #2
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    La table shop_tour1 comporte également le champs id_alea...

    J'ai commencé à faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM shop_tour1 
                   INNER JOIN shop_alea ON shop_tour1.id_alea=shop_alea.id_alea 
                   WHERE shop_tour1.id_alea=%s
    avec %s qui correspond à $_GET['id_alea'];

    Je pense qu'il faut un second INNER JOIN sur shop_master, mais je vois pas comment faire n1=id_master et n2=id_master et ...n5=id_master ?
    www.masterquizz.fr - Ne vous posez plus de questions

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2012
    Messages : 34
    Points : 60
    Points
    60
    Par défaut
    Dans shop_tour1 as tu quelque chose comme cela :

    Biloulou, "Y", " ", " ", " ", " ", "Y", " ", .....

    Donne moi alors un exemple de contenu des différentes tables

  4. #4
    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
    A première vue, je ne suis pas certain que la structure des tables soit optimisée... ce qui ne simplifie pas le problème.
    Quelques exemples du contenu des tables améliorerait peut-être la compréhension du besoin.
    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.

Discussions similaires

  1. Jointure sur trois tables
    Par user126 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/02/2008, 17h07
  2. [SQL Server 8] Discussion : Full Jointure sur trois tables
    Par Baquardie dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/12/2006, 14h01
  3. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  4. aide pour requete sur 2 tables avec clé étranere
    Par richton95 dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2005, 13h32
  5. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20

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