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

PHP & Base de données Discussion :

Requête sur deux tables. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Requête sur deux tables.
    Bonjour à tous,

    Je plante le décor :
    J'ai une base de donnée, contenant deux tables :
    - news_emission
    - blog
    Les deux tables possèdent exactement les mêmes champs de part et d'autre. Juste les données changent.

    Je cherche à réaliser une requete, permettant de prendre les 5 derniers résultats de chaques tables, de les mixer et trier le tout selon les dates des articles (présentes dans le champ 'date' de chaque élément).

    Pour le moment, je n'ai obtenu aucun résultat avec des JOIN.

    Merci pour votre aide,
    Alex.

  2. #2
    Membre du Club Avatar de TheEwook
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Tu veux pouvoir faire ça avec une seule requête seulement ? Je ne pense pas que ce soit possible de le faire en une seule requête. Le plus simple c'est de décomposer les tâches.

    Une requête pour les 5 derniers résultats de ta première table.
    Même chose pour la deuxième table. Et ensuite tu mixes les données à la mano en les triant par date.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Deux requêtes sont totallement envisageables sans problème.

    Tu aurais un exemple ou schéma rapide concernant le mixage et triage ?

    Merci,
    Alex.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select from blog order by date desc limit 5

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par gloubi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select from blog order by date desc limit 5
    Bien sur pour la requete, je réalise cela sans aucun problème.
    Il s'agirait plus du mixage après les requetes.

    Merci pour la rapidité en tout cas ! Les messages fusent.

    Alex.

  6. #6
    Membre du Club Avatar de TheEwook
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Une fois que tu as tes 2 tableaux de 5 enregistrements chacun, tu y appliques juste une fonction de tri (tri par insertion, tri à bulle, tri par fusion, etc...), cela te donnera un tableau de 10 enregistrements triés.

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    ummm... je sais pas trop ce que le php nous propose pour retourner des resultats de requete, mais une solution avec mysql_fetch_assoc() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $tmp = array();
    while($r = mysql_fetch_assoc($requete_table1))
       $tmp[$r['date']] = $r;
    while($r = mysql_fetch_assoc($requete_table2))
       $tmp[$r['date']] = $r;
    ksort($tmp);

    et tmp devrait contenir les resultat ordonnes...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Bonjour,
    au pire utilisez UNION :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    (
     SELECT * 
      FROM `t1` 
      ORDER BY `id` DESC 
      LIMIT 5
    ) 
    UNION 
    (
     SELECT * 
      FROM `t2` 
      ORDER BY `id` DESC 
      LIMIT 5
    );
    Cordialement,
    DaRiaN.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre aide !

    Alors, la solution avec l'array compliquait le tout, mais reste fonctionnelle.

    J'ai toutefois opté pour la solution de l'UNION.

    Voici mon code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = '(SELECT * FROM news_emissions WHERE actif="1" ORDER BY id DESC limit '.$limite.',1) UNION (SELECT * FROM blog WHERE actif="1" ORDER BY id DESC limit '.$limite.',1) ORDER by date DESC';
    Merci pour votre aide,
    Alex.

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

Discussions similaires

  1. Aide pour une requête sur deux tables
    Par Andry dans le forum Développement
    Réponses: 2
    Dernier message: 05/11/2007, 07h14
  2. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  3. Requête sur deux tables et réponses en colonnes
    Par grandoc dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2006, 12h49
  4. Requête sur deux tables en même temps
    Par will89 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2006, 11h01
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

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