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

Requêtes MySQL Discussion :

jointure interne qui marche pas


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut jointure interne qui marche pas
    Bonjour
    Donc voilà la requete ci 1 marche mais si j'ajoute la 2eme jointure interne la requete 2 me retourne 0 ligne, d'ou vient le problème?
    donc quand j'ajoute la 2eme jointure interne ça marche pas

    Requete 1:
    SELECT E.id, S.nom, E.num_episode
    FROM episode E, serie S
    WHERE S.id = E.serie AND E.serie = '$serie' AND E.saison = '$i'
    ORDER BY E.num_episode
    Requete 2:
    SELECT E.id, S.nom, E.num_episode, U.pseudo
    FROM episode E, serie S, utilisateur U
    WHERE U.id = E.utilisateur AND S.id = E.serie AND E.serie = '$serie' AND E.saison = '$i'
    ORDER BY E.num_episode

    Structure des tables si ça peut aider
    CREATE TABLE `episode` (
    `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
    `serie` tinyint(3) unsigned NOT NULL,
    `saison` char(1) NOT NULL,
    `num_episode` char(2) NOT NULL,
    `utilisateur` smallint(5) unsigned NOT NULL,
    `date_ajout` datetime NOT NULL,
    `nbr_visualisation` smallint(5) unsigned NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
    -----------------------------------------------------
    CREATE TABLE `utilisateur` (
    `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
    `pseudo` varchar(20) NOT NULL,
    `pass` varchar(40) NOT NULL,
    `mail` varchar(50) NOT NULL,
    `type` tinyint(3) unsigned NOT NULL,
    `en_ligne` varchar(1) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
    ----------------------------------------------------
    CREATE TABLE `serie` (
    `id` tinyint(3) unsigned NOT NULL,
    `nom` varchar(30) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    Merci d'avance de votre aide

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Essaye avec l'écriture normalisée des jointures
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT E.id, S.nom, E.num_episode, U.pseudo
    FROM episode E
    inner join  serie S on S.id = E.serie
    INNER JOIN  utilisateur U ON U.id = E.utilisateur
    WHERE  E.serie = '$serie' AND E.saison = '$i'
    ORDER BY E.num_episode
    Si tu n'as aucun résultat c'est qu'aucun utilisateur ne vérifie la condition de la jointure U.id = E.utilisateur pour $serie et $i.
    Au demeurant, si ces deux colonnes sont numériques ( E.serie et E.saison), il ne faut pas les mettre entre quotes.

  3. #3
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    merci Kris, en vérifiant les entrées dans la base, j'ai trouvé que effectivement, il n'y avait pas d'utilisateur dont l'id égale à 0 dans la table utilisateur, encors une fois merci beacoup

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

Discussions similaires

  1. Requete avec jointure qui marche pas
    Par gloubi dans le forum Langage SQL
    Réponses: 13
    Dernier message: 14/02/2008, 16h25
  2. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28
  3. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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