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 :

Faire une jointure entre deux tables qui ne sont pas dans la même base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut Faire une jointure entre deux tables qui ne sont pas dans la même base de données
    Bonjour,
    J'ai un problème, j'ai une table dans une base de données x que j'aimerais utiliser dans une autre table qui se trouve sur une autre base de données y (mais sur le même serveur).

    Est-il possible de faire une jointure entre les deux tables qui ne sont pas sur la même base de données ???

    Si oui, comment ?

    Ouvrir les deux bases de données et ensuite ?

    Merci par avance.
    Cordialement,

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Il faut écrire dans ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from base1.table1 join base2.table2 on base1.table1.champ1 = base2.table2.champ2

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Ok, merci Guidav, mais voilà ce qu'ils m'écrivent :

    Je fais l'ouverture des deux bdd puis ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="SELECT * FROM mabase1.matable1 join mabase2.matable2 on mabase1.matable1.idcontact= mabase2.matable2.contactid";
     
    $requete=mysql_query($sql) or die(mysql_error());
    Et voici ce qu'ils m'écrivent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT command denied to user 'mabase1'@'localhost' for table 'matable2'
    Une idée ?

  4. #4
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    tu te connecte à un utilisateur qui n'a pas les droits sur la base que tu souhaite joindre


    essaye de faire :

    Code MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GRANT SELECT
    ON mabase2.table2
    TO mabase1;
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    J'ai l'impression que mon serveur dédié n'ouvre qu'une seule base de données à la fois... parce que normalement, j'ai le droit sur les deux, je suis bien root mais vu le message d'erreur, j'ai l'impression qu'il ne me donne pas les droits, why ???!!!

    Le GRANT SELECT ne marche pas...

    Je dois mal l'employer... Faut-il le mettre avant ma requête dans un mysql_query ??


  6. #6
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    en php tu te connecte à ta base en root?
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Oui, bien sûr, je me connecte sur les deux bases de données en php sur le localhost et le nom de la base de données !
    donc je ne comprends pas pourquoi ça ne reconnait pas les bons droits !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Ok, laisse tomber, je viens de trouver, je faisais deux fois une connexion : vers la première base puis vers la deuxième base...
    Maintenant, je ne me prends pas la tête, j'ai mis carrément les identifiants du root où nous avons une dizaine de base de données dessus et là, ça marche bien...
    En espérant qu'on ne se fasse pas pirater car là, le pirate aura vraiment les identifiants de toute notre base de données mysql avec une centaine de sites... ça craint non ?

  9. #9
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Ca craint à mort. Il faut absolument définir des utilisateurs plus précis, n'ayant en particulier pas les droits GRANT, et éventuellement pas DROP si ce n'est pas absolument nécessaire.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Ah, si ça craint, je vais essayer de régler le problème afin de faire marcher les utilisateurs alors mais bon...

    J'ai toujours le même problème qui s'affiche si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("GRANT SELECT ON base1 TO base2");
    puis ma requête SQL...

    j'ai le même message d'erreur comme s'il ne prenait pas en compte cette requête.
    Je fais quelque chose qui ne va pas mais quoi svp ?

  11. #11
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    quand j'évoquais cette requète, j'esperais que tu la ferais en ligne de commande ou sur phpMyAdmin. car elle n'est à éxécuter qu'une seule fois!
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Ah mince, oups, je l'ai faite plusieurs fois

    Bon, je vais la refaire sur phpmyadmin...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Ah bon apparemment, ça marche ! je n'ai pas eu besoin de le faire sur phpmyadmin... en actualisant, tout marche !
    Merci beaucoup à vous

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/08/2014, 15h08
  2. Réponses: 6
    Dernier message: 29/06/2012, 10h24
  3. Réponses: 1
    Dernier message: 17/02/2011, 09h57
  4. [MySQL] jointure entre deux table qui n'appartiennet pas al même base
    Par bourbita.thameur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/04/2009, 16h08
  5. faire une différence entre deux tables
    Par geay dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/09/2006, 16h33

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