2014-03-02 47 views
1

我有一个访问2个数据库的MySQL查询。我正在使用Python来执行查询。 Python MySQL连接的问题在于它在任何时候都像下面那样连接到单个数据库;执行MySQL查询,访问Python中的单独数据库

DbConnection = MySQLdb.connect(host='localhost', user='root', passwd='', db='MySQLDatabase') 

如何让Python执行访问2个数据库的查询?

回答

3

您可以使用数据库的名称限定表名。例如,如果您指定的数据库db1当你建立与服务器的连接,但要执行另一个数据库db2涉及表的查询,只需这样做:

conn = MySQLdb.connect(host='localhost', user='root', db='db1') 
c = conn.cursor() 
c.execute("SELECT * FROM foo JOIN db2.bar") 

还请注意,这不是在建立连接时需要指定数据库的情况。如果您确实省略了数据库,则需要使用数据库的名称来限定每个表名:

conn = MySQLdb.connect(host='localhost', user='root') 
c = conn.cursor() 
c.execute("SELECT * FROM db1.foo JOIN db2.bar")