2011-04-18 12 views
79

En MySQL, tengo dos bases de datos diferentes, llamémoslas A y B.MySQL: ¿se une entre tablas en 2 bases de datos diferentes?

¿Es posible realizar una unión entre una tabla que está en la base de datos A, en una tabla que está en la base de datos B?

+0

¿Es posible unirse? a diferentes bases de datos, DB1 = mysql y DB2 = PostgreSQL). Ambos tienen pocas tablas de columnas. – MAX

Respuesta

99

Sí, suponiendo que la cuenta tiene los permisos adecuados puede utilizar:

SELECT <...> 
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1; 

sólo tiene que agregar un prefijo de referencia de tabla con el nombre de la base de datos que reside en

+7

¿Qué hay del rendimiento? –

+4

@ MarçalJuan: publique su propia pregunta, aunque ya hay muchos en SO sobre [UNIR el rendimiento] (http://stackoverflow.com/questions/2241991/in-mysql-queries-why-use-join-instead-of- donde) –

+3

¿Qué hay de dos bases de datos de diferentes servidores? (por ejemplo, un db en un servidor de servicios en la nube, y en db en su propio servidor) –

4
SELECT <...> 
FROM A.tableA JOIN B.tableB 
1
SELECT * 
FROM A.tableA JOIN B.tableB 
.

o

SELECT * 
    FROM A.tableA JOIN B.tableB 
    ON A.tableA.id = B.tableB.a_id; 
Cuestiones relacionadas