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 : savoir de quelle table viennent les données


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Jointure : savoir de quelle table viennent les données
    Bonjour,
    Je dois faire une requete pour lister les gros tutoriels et les mini tutoriels, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reponse=mysql_query('
    SELECT tm.id,tb.id 
    FROM tuto_mini AS tm LEFT JOIN tuto_big AS tb 
    WHERE tm.fini=1 AND tb.fini=1 AND tm.categorie='.$cat.' AND tb.categorie='.$cat.'
    ON id.id
    ');
    Cependant, mon url pour afficher les tutoriels est formée sous cette syntaxe :
    /$type-$id.html

    J'ai l'ID du tutoriel mais je ne sais pas comment récupérer le type du tutoriel qui vaut 0 s'il vient de la table tuto_mini et 1 s'il vient de la table tuto_big.

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Médecin.
    Inscrit en
    Septembre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Médecin.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2008
    Messages : 96
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    Cependant, mon url pour afficher les tutoriels est formée sous cette syntaxe :
    /$type-$id.html
    Je ne vois pas ce que celà vient faire ici

    J'ai l'ID du tutoriel mais je ne sais pas comment récupérer le type du tutoriel qui vaut 0 s'il vient de la table tuto_mini et 1 s'il vient de la table tuto_big.
    Il faut le mettre dans le select ! Mais je ne suis pas sur que celà réponde à ta question.
    Dans ce cas quelques précisions sont nécessaires.
    Cordialement.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Tu n'as pas compris le problème je pense, je vais essayer d'être plus clair.

    Mon site propose des tutoriels et l'url de la page est faite de cette façon :
    /$type-$id_tutoriel.html

    Donc par exemple :
    /0-48.html

    C'est mon site qui est comme ça, c'est moi qui est choisis.

    Si le type de la page (passé dans l'url rewriting) est 0 alors c'est la page voir_minituto qui va s'executer sinon si c'est 1 alors c'est la page voir_bigtuto qui va s'executer.

    Pour lister les tutoriels je fais cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reponse=mysql_query('
    SELECT tm.id,tb.id 
    FROM tuto_mini AS tm LEFT JOIN tuto_big AS tb 
    WHERE tm.fini=1 AND tb.fini=1 AND tm.categorie='.$cat.' AND tb.categorie='.$cat.'
    ON id.id
    ');
    Les gros tutos viennent de la table tuto_big, les minis tutos viennent de la table tuto_mini.
    Je souhaite faire qu'une requete pour lister ceci j'ai donc fais la requete que tu peux voir ci-dessus mais je ne vois pas comment savoir si le resultat retourné vient de la table tuto_big ou tuto_mini.

    Comprends-tu ?

  4. #4
    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,
    On comprend surtout que la jointure n'est pas la solution, mais bien plutôt une UNION entre deux SELECT, un sur chacune des tables.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Je ne connais pas beaucoup les UNION, j'ai fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $reponse=mysql_query('
    (SELECT id FROM tuto_mini WHERE fini=1 AND categorie='.$cat.' )
    UNION
    (SELECT id FROM tuto_big WHERE fini=1 AND categorie='.$cat.' )
    ORDER BY id DESC
    ');
    Je n'ai pas encore tester mais je pense que c'est correct. Mais je ne vois toujours pas comment savoir comment l'entrée vient de tuto_mini ou tuto_big

  6. #6
    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
    Non seulement la solution est d'une simplicité déconcertante, mais elle se trouve dans la FAQ.
    Avec un peu de jugeotte....
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci !
    Je met le lien pour ceux interessés :
    http://mysql.developpez.com/faq/?pag..._table_origine

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/06/2007, 17h43
  2. Réponses: 8
    Dernier message: 19/04/2007, 19h41
  3. Réponses: 3
    Dernier message: 18/07/2006, 17h37
  4. Réponses: 3
    Dernier message: 09/04/2006, 12h58
  5. Comment savoir de quelle table un trigger dépend
    Par fluec-wa dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 19h41

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