2012-01-06 59 views
5

如何使用单个查询两个表,这是在不同的数据库,是指两个或多个表,选择从不同的数据库

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM table1, table2 
WHERE table1.id = table2.id 

这里,table1table2在单独的数据库中。

+0

难道真是一个题外话? – 2016-02-20 21:43:13

回答

10

你可以做跨数据库连接,没问题。只需在数据库名称前加上表名。

SELECT t1.id, t1.name, t2.id, t2.telephone 
FROM db1.table1 t1 
INNER JOIN db2.table2 t2 on t1.id = t2.id; 

不过要小心权限。如果用户无法访问其中一个数据库,则该选择将失败。

+0

如何用php写它?请你举个例子,如何在php中一次打开不同的两个数据库连接? – 2012-01-06 20:15:50

+0

只要执行这个SQL,它应该照原样运行。 – 2012-01-06 20:16:47

+0

当我们同时使用两个数据库或者单个数据库中的两个表都很好时,是否有与速度相关的问题? – 2012-01-06 20:25:20

1

您需要使用完全合格的名字表以及字段/属性:

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM db_1.table1, db_2.table2 
WHERE table1.id = table2.id 
+0

什么是一个字段的回溯列名,例如$ Row ['column_name']? – 2012-01-08 07:02:40