Cuando trabajamos con una base de datos con SQL (no quiero olvidarme de esas menos conocidas pero no por ello menos útiles NoSQL), es muy frecuente realizar consultas que involucren dos tablas pero no es tan normal, que estas dos tablas estén en bases de datos diferentes.
En el caso particular de MySQL (aunque se realiza de forma similar en otros sistemas gestores de bases de datos) hacemos lo siguiente para realizar una consulta:
USE nombre_base_datos; SELECT * FROM nombre_tabla
Si queremos hacer llamadas a dos tablas de dos bases de datos, directamente obviamos USE y hacemos lo siguiente:
SELECT tabla_a.campo, tabla_b.campo FROM base_datos_a.tabla_a AS tabla_a, base_datos_b.tabla_b AS tabla_b
Si queréis aclaraciones preguntad en los comentarios.
Ver comentarios
Bueno, yo añadiría que esto solo es válido si las dos tablas se encuentran en el mismo servidor.
Desgraciadamente MySQL no permite comandos tipo [ip].bbdd.tabla por lo que si necesitas recuperar datos de dos tablas en dos bases de datos diferentes en servidores distintos no hay más remedio que apañarse por código o usar tablas FEDERATED
http://dev.mysql.com/doc/refman/5.0/es/federated-storage-engine.html
¿Cómo hacer una llamada que involucre a dos bases de datos?
"desde mi movil"
-alo Paco, a que no te imaginas a quienes vi juntos muy romanticos, a Oracle y MySQL .
Muy buen aporte @daimon, gracias.
Excelente me sirvió mucho gracias :)
Cómo harías para que base_datos_b se conecte con su respectivo user y pass para luego esa consulta sepa que estamos dirigiendonos a esa tabla junto con la base_datos_a ????