Conectarea tabelelor de baze de date diferite

sarcină
Doriți să utilizați tabele în conexiune, dar acestea sunt situate în diferite baze de date.

Soluția
Utilizați calificatorul de nume de bază de date pentru a spune MySQL unde să caute tabele.







discuție
Există situații în care trebuie să conectați două tabele situate în diferite baze de date. Pentru a face acest lucru, specificați numele coloanelor și tabelelor cu suficientă detaliere, astfel încât MySQL să înțeleagă exact la ce vă referiți. Am folosit cămașă și mese de legătorie, implicit implicând faptul că acestea sunt ambele în baza de date de carte de bucate, astfel încât să puteți face referire la tabele fără a specifica numele bazei de date. De exemplu, următoarea interogare preia combinațiile elementelor din două tabele:

mysql> SELECT shirt.item, tie.item din cămașă, cravată;

+-----------+--------------+
| | element | element |






+-----------+--------------+
| | Pinstripe | Fleur de lis |
| | Tie-Dye | Fleur de lis |
| | Negre | Fleur de lis |
| | Pinstripe | Paisley |
| | Tie-Dye | Paisley |
| | Negre | Paisley |
| | Pinstripe | Polka Dot |
| | Tie-Dye | Polka Dot |
| | Negre | Polka Dot |
+----------+--------------+

Dar să presupunem că tabela de cămăși este în baza de date db1, iar legătura este în baza de date db2.


Pentru a raporta acest lucru MySQL, înainte de numele fiecărui tabel, adăugați un prefix care identifică baza de date de care aparține tabelul. Conexiunea cu forma completă a indicării numelui arată astfel:

SELECT db1.shirt.item, db2.tie.item FROM db1.shirt, db2.tie;

Dacă baza de date curentă nu este selectată sau este o bază de date diferită de db1 și db2, trebuie să specificați numele în formularul complet. Cu toate acestea, dacă db1 sau db2 este baza de date curentă, puteți face acest lucru fără niște specificatori. De exemplu, dacă baza de date curentă este db1, puteți omite specificatorii db1:

SELECT shirt.item, db2.tie.item FROM cămașă, db2.tie;

În schimb, dacă baza de date curentă este db2, atunci nu este nevoie de prefixe db2:

SELECT db1.shirt.item, tie.item din db1.shirt, cravată;







Articole similare

Trimiteți-le prietenilor: