Vegyület asztalok különböző adatbázisok

feladat
Azt szeretnénk használni a táblázatot a mix, de ezek találhatók a különböző adatbázisokban.

döntés
A következő selejtező adatbázis nevét megmondani MySQL, hol kell keresni a táblázatban.







megbeszélés
Vannak helyzetek, amikor szükség van, hogy egy kapcsolatot két tábla között található különböző adatbázisokban. Ehhez válassza ki az oszlopot és asztali nevek teljes ahhoz, hogy a MySQL tudta megérteni, hogy pontosan mi van utalva. Mi egy ing és nyakkendő asztal, hallgatólagosan arra utal, hogy mindkettő alapja szakácskönyv adatokat úgy, hogy akkor nézze meg a táblázat megadása nélkül az adatbázis nevét. Például, az alábbi lekérdezés visszakeresi kombinációi elemeinek két táblázat:

mysql> SELECT shirt.item, tie.item FROM ing, nyakkendő;

+-----------+--------------+
| tétel | tétel |






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

De tegyük fel, hogy az ing egy táblát az adatbázisban db1 adatbázis és nyakkendő - adatbázisban DB2 Data.


Hogy tájékoztassa a MySQL, mielőtt a neve minden egyes táblázatot hozzá az előtag az az adatbázis, amelyre a táblázatot tartozik. Kapcsolatba teljes módját neve így néz ki:

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

Ha az aktuális adatbázis nincs kiválasztva, vagy egy adatbázis, amely eltér db1 és a DB2, meg kell adnia a nevét teljes formában. Azonban, ha db1 vagy DB2 jelenlegi adatbázis, akkor elkerülheti a selejtezők. Például, ha a jelenlegi adatbázis - db1, akkor nyugodtan elhagyhatjuk az előírást db1:

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

Ezzel szemben, ha a jelenlegi adatbázis DB2, akkor nincs szükség a prefix DB2:

SELECT db1.shirt.item, tie.item FROM db1.shirt, nyakkendő;




Kapcsolódó cikkek