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 :

Rassembler résultats de 2 requetes sql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Par défaut Rassembler résultats de 2 requetes sql
    Bonjour,

    J'aimerais rassembler les résultats de 2 requêtes identiques.
    Je m'explique, j'ai 2 bases, avec chacune une table pays(Nom, Ville).
    Dans la première table j'ai par exemple :
    France Paris
    France Marseille
    USA Los Angeles
    Russie Moscou
    Et dans la deuxieme :
    France Lyon
    USA New-York

    Ma requete est SELECT count(*) as nb From Pays GROUP BY Nom, ORDER BY nb

    je récupère donc :
    France 2
    USA 1
    Russie 1
    et :
    France 1
    USA 1

    je voudrais pouvoir joindre les résultats pour avoir :
    France 3
    USA 2
    Russie 1


    Est-ce possible facilement de joindre les résultats des 2 rèquetes ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(nb) FROM
    (SELECT COUNT(*) as nb FROM table1 GROUP BY nom UNION SELECT COUNT(*) as nb FROM table2 GROUP BY nom )
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Par défaut
    Citation Envoyé par sabotage Voir le message
    peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(nb) FROM
    (SELECT COUNT(*) as nb FROM table1 GROUP BY nom UNION SELECT COUNT(*) as nb FROM table2 GROUP BY nom )
    Mais non comme j'ai dit c'est dans 2 bases différentes

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Mais non comme j'ai dit c'est dans 2 bases différentes
    Si les 2 bases sont sur le même serveur MySQL, tu peux le faire, suffit de rajouter/préfixer le nom de la base aux champs, et exploiter les alias au besoin.

    Exemple (bidon) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.nom AS nomA, b.nom AS nomB
    FROM baseA.unetable AS a
    JOIN baseB.unetable AS b ON b.id = a.id
    Théoriquement ça devrait fonctionner grâce aux alias (a et b) même si les noms des tables et des champs sont les mêmes dans 2 Bdd différentes.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Si les 2 bases sont sur le même serveur MySQL, tu peux le faire, suffit de rajouter/préfixer le nom de la base aux champs, et exploiter les alias au besoin.

    Exemple (bidon) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.nom AS nomA, b.nom AS nomB
    FROM baseA.unetable AS a
    JOIN baseB.unetable AS b ON b.id = a.id
    Théoriquement ça devrait fonctionner grâce aux alias (a et b) même si les noms des tables et des champs sont les mêmes dans 2 Bdd différentes.
    Oui mais c'est justement sur 2 serveurs différents

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par dzaohfz
    Oui mais c'est justement sur 2 serveurs différents
    A ben ça tu ne l'avais pas dis.

    Cette fois, je ne crois pas que ce soit possible, mais je suis loin, même très loin d'avoir tout vu sur MySQL.

    Donc sauf erreur, il te reste plus qu'à faire 2 requêtes SQL sur chaque serveur pour ensuite exploiter les tableaux en Php pour fusionner le tout.
    Un array_intersect() peut être.

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

Discussions similaires

  1. Recharger une JTable avec le résultat d'une requete sql
    Par Premium dans le forum Composants
    Réponses: 2
    Dernier message: 06/06/2007, 15h19
  2. [SQL] Résultat d'une requete SQL en 2 colonnes
    Par apt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/02/2007, 02h24
  3. Réponses: 2
    Dernier message: 03/09/2006, 11h02
  4. Résultat d'une requete SQL vers Excel
    Par climz dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 15h44
  5. résultat d'une requete SQL dans un tableau en JSP
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/04/2005, 16h17

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