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 :

Joindre deux requêtes


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Par défaut Joindre deux requêtes
    Bonjour,

    je bute depuis quelques temps pour joindre deux requêtes, pour le moment j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM table1 
    ORDER BY time DESC 
    LIMIT 0, 5'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM table2 
    ORDER BY time DESC 
    LIMIT 0, 5
    Si c'est possible je voudrais que ces requêtes n'en fassent qu'une.

    J'ai essayé ceci mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM table1, table2 
    ORDER BY time 
    DESC LIMIT 0, 5
    Merci de vos réponse! =)

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Il nous faut le schéma des tables pour pouvoir vous aider et un peu plus de détail sur leur structure.
    Sinon, commencez par jeter un œil sur ce tutoriel : http://sqlpro.developpez.com/cours/sqlaz/jointures/

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Par défaut
    Schéma de mes tables:

    table1
    id
    id_n
    contenu
    time

    table2
    id
    id_t
    contenu
    time

    Je voudrai donc selectionner id_n, contenu, time de la table1 et id_t, contenu, time de la table2 puis trier grâce à time et faire une limite de 5

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    De ce que je crois comprendre il n'y a aucun lien entre tes 2 tables. Tu ne souhaite pas avoir l'enregistrement de la table 2 qui correspond à celui de la table 1.

    Tu veux juste l'ensemble de la table 1, puis l'ensemble de la table 2, le tout trier par time et prendre seulement les 5 premiers ?

    Si c'est bien ça, c'est pas une jointure qu'il faut faire mais une union.

    Quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT * FROM
        (SELECT id_t as MyID, contenu, time FROM table1
         UNION
         SELECT id_n as MyID , contenu, time FROM table2)
    ORDER BY time DESC
    LIMIT 0,5

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Par défaut
    J'ai fait la requête comme tu ma dit mais je ne peut plus utiliser les variables id_t et id_n es-que c'est normal ?

    Undefined index: id_t
    Undefined index: id_n

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Erreur de ma part, il faut les inverser

    Il faut mettre id_n sur la sous-requete de table1 et id_t sur la sous-requete de table2

Discussions similaires

  1. [MySQL] Joindre deux requêtes
    Par Lobby dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/08/2010, 12h54
  2. Réponses: 1
    Dernier message: 16/09/2009, 13h30
  3. joindre deux tables créées par requêtes
    Par bernard6 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/04/2007, 11h27
  4. Réponses: 4
    Dernier message: 11/10/2005, 10h17
  5. [VB6]Joindre deux recordsets en un seul
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/06/2003, 21h06

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