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 ou correspondance entre deux BASES


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
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut Jointure ou correspondance entre deux BASES
    Bonjour à tous,

    Voilà je suis actuellement entrain de refaire le site intranet de la boite pour laquelle je travaille, le souci est que la personne qui s'est chargée du développement de ce même site intranet avant moi a fait ça de manière assez bizarre..

    Il a fait plusieurs bases de données, avec pour chacune une table "administrateurs" qui répertorie donc tous les administrateurs qui pourront agir sur les fonctions correspondantes à la base concernée.

    Or on me demande aujourd'hui, de supprimer toutes ses tables "administrateurs" pour faire une BASE "administrateurs" qui contiendrait une unique TABLE "administrateurs" qui répertorierait les administrateurs de toutes les BASES.. Un peu archaïque à mon sens, et surtout ça me parait impossible.. Je suis loin d'être un champion en matière de bases de données, mais je n'ai encore jamais vu de correspondances entre deux bases de données.. Entre deux tables d'une même base oui, mais pas entre deux tables, de deux bases différentes..
    un *** WHERE table1.champ = table2.champ OK, mais: ***WHERE base1.table.champ = base2.table.champ je n'ai encore jamais vu ça, et pour moi c'est impossible..

    J'ai conscience que ce post n'est pas des plus compréhensibles au premier coup d'oeil, veuillez m'en excuser par avance, j'espère quand même que vous arriverez à éclairer ma lanterne.. Il se peut que je me trompe totalement et que la correspondance entre deux bases soit possible, mais j'ai un peu cherché sur google depuis que j'ai pris mon service ce matin, et j'avoue n'avoir pas trouvé grand chose, pour ne pas dire rien du tout.

    Merci par avance

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    En MySQL, c'est tout à fait possible de tester une correspondance entre deux bases.

    Mais au passage, je signale que la syntaxe normalisée depuis 1992 pour les jointures utilise le mot clé JOIN.

    on peut donc tout à fait écrire la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a.colA, b.colB
    FROM base1.tableA AS a
    INNER JOIN base2.tableB AS b ON a.id1 = b.id1
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    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 : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Citation Envoyé par CinePhil Voir le message
    En MySQL, c'est tout à fait possible de tester une correspondance entre deux bases.
    Si je peux me permettre ce complément implicite, entre deux bases d'un même serveur.
    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)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Oui oui, les bases sont toutes sur le même serveur, mais je pensais vraiment pas possible la correspondances entre deux tables de deux bases différentes. Je vais m'y essayer vu qu'on me dit que c'est possible.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Bon, j'ai testé un truc tout bête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $resultat = 'SELECT ttest1.champ1 FROM btest1.ttest1, btest2.ttest2 WHERE btest1.ttest1.champ2 = btest2.ttest2.champ2';
    $resultat = mysql_query($resultat) or die(mysql_error());
    echo $resultat;
    Pour me donner l'id du tuple de la table1 de la base1 ayant le même champ2 que la table2 de la base2, mais pour seul résultat j'ai un joli: Resource id #4

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    INNER JOIN et pas cet horrible FROM plusieurs tables WHERE !
    Au bout de 17 ans, il serait peut-être temps de se mettre à la syntaxe normalisée !

    Et si tu n'utilises pas d'alias, je pense que tu dois répéter base.table.colonne dans le SELECT et pas seulement table.colonne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [PDO] Jointure entre deux bases
    Par misakilou dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/07/2012, 10h18
  2. [MySQL] Jointure entre deux bases
    Par gantec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/05/2009, 08h33
  3. Requête entre deux bases
    Par dcollart dans le forum Informix
    Réponses: 2
    Dernier message: 22/05/2006, 08h54
  4. correspondance entre noms (bases et tables) et répertoires
    Par Eärendil dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/05/2005, 14h21
  5. copie de tables entre deux bases
    Par rlgrand dans le forum Débuter
    Réponses: 3
    Dernier message: 27/12/2004, 12h12

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