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 :

requête entre deux tables


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut requête entre deux tables
    Bonjour

    mon problème c'est que j'ai une base de donnée qui représente une tournoi d'une activité parascolaire dans la quel j'ai deux tables

    la première oppose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE `oppose` (
    	`id_j1` INT(10) NULL DEFAULT NULL,
    	`id_j2` INT(10) NULL DEFAULT NULL,
    	`id_match` INT(10) NULL DEFAULT NULL,
    	INDEX `FK_oppose_joueur1` (`id_j1`),
    	INDEX `FK_oppose_joueur2` (`id_j2`),
    	INDEX `FK_oppose_match` (`id_match`),
    	CONSTRAINT `FK_oppose_joueur1` FOREIGN KEY (`id_j1`) REFERENCES `joueur` (`id`),
    	CONSTRAINT `FK_oppose_joueur2` FOREIGN KEY (`id_j2`) REFERENCES `joueur` (`id`),
    	CONSTRAINT `FK_oppose_match` FOREIGN KEY (`id_match`) REFERENCES `match` (`id_m`)
    )
    ENGINE=InnoDB
    ROW_FORMAT=DEFAULT
    mon deuxième table c'est : Joueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE `joueur` (
    	`id` INT(10) NOT NULL AUTO_INCREMENT,
    	`nom` VARCHAR(10) NULL DEFAULT NULL,
    	`prenom` VARCHAR(10) NULL DEFAULT NULL,
    	`photo` TEXT NULL,
    	`email` TEXT NULL,
    	`niveau` TEXT NULL,
    	PRIMARY KEY (`id`)
    )
    ENGINE=InnoDB
    ROW_FORMAT=DEFAULT
    je veux faire une simple requête pour voir les joueur qui joue entre eux

    pour j'ai fais sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from `oppose`,joueur where id=id_j1 OR id=id_j2;
    Mais portant il ya toujours les champ qui se répète


    Cordialement Ryodo
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.
    Le français n'est pas ma langue maternelle, désolé pour les éventuelles fautes.
    http://icoz.ma
    http://icozstore.com

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    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 091
    Points : 28 362
    Points
    28 362
    Par défaut
    1. Utiliser la syntaxe normalisée des jointures
    2. Puisqu'il faut consulter deux fois la table joueur, il faut l'exprimer deux fois dans la requête
    3. (Re)lire le tutoriel sur les jointures


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  * 
    FROM    oppose  opp
        INNER JOIN
            joueur  j1
            ON  j1.id = opp.id_j1 
        INNER JOIN
            joueur  j2
            ON  j2.id = opp.id_j2
    ;
    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.

  3. #3
    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 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    4) Éviter la guerre des étoiles !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  j1.nom AS nom_joueur_1, j1.prenom As prenom_joueur_1,
        j2.nom AS nom_joueur_2, j2.prenom As prenom_joueur_2
    FROM oppose  opp
    INNER JOIN joueur  j1 ON  j1.id = opp.id_j1 
    INNER JOIN joueur  j2 ON  j2.id = opp.id_j2
    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 !

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 206
    Points : 28 129
    Points
    28 129
    Par défaut
    Il va falloir arriver à créer un mouvement de lutte contre les jointures implicites

    Le pire c'est que c'est comme ça que les jointures sont enseignées par les profs dans les écoles
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    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 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Il va falloir arriver à créer un mouvement de lutte contre les jointures implicites
    Certains d'entre nous mènent cette lutte en répondant aux messages dans les forums DVP.

    Le pire c'est que c'est comme ça que les jointures sont enseignées par les profs dans les écoles
    Il n'ont jamais que 11 ans de retard les pauvres !
    Ça me rappelle quelqu'un qui a dit que l'Éducation Nationale est un mammouth !
    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 !

  6. #6
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    merciiiiiii
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.
    Le français n'est pas ma langue maternelle, désolé pour les éventuelles fautes.
    http://icoz.ma
    http://icozstore.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête entre deux table
    Par ryodo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/09/2010, 17h36
  2. [AC-2003] Requête égalité entre deux tables non liées.
    Par Thotho-Maxime dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/07/2009, 09h14
  3. [AC-2003] problèmes requêtes entre deux tables
    Par butch31 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 10h18
  4. Réponses: 1
    Dernier message: 11/06/2009, 23h39
  5. Requête sql entre deux tables
    Par jojo86 dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/02/2008, 19h19

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