单个MySQL查询多个数据库

时间:2015-11-04 21:25:34

标签: mysql excel vba excel-vba database-connection

我正在使用以下设置:

考虑两个MySQL数据库:abcxyz,每个数据库都有自己的表:abctable_in_abcxyztable_in_xyz。我需要运行一个简单的MySQL查询,从table_in_abc中选择与table_in_xyz有JOIN关系的元素。

在Workbench中,以下查询可以正常工作:

SELECT AB.* , XY.*
FROM `abc`.`table_in_abc` AB
LEFT JOIN `xyz`.`table_in_xyz` XY ON AB.`ID` = XY`ID`

我正在尝试在VBA中实现相同的功能。我能够在单个数据库上运行MySQL查询(参见下面的示例),但在查询涉及多个数据库时无法执行此操作。

单个数据库上的简单VBA查询示例:

Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver}" _
& ";SERVER=" & server_name _
& ";DATABASE=" & database_name _
& ";UID=" & user_id _
& ";PWD=" & password _
& ";OPTION=3" '

Set rs1 = New ADODB.Recordset
sqlstr = "SELECT * FROM `abc`.`table_in_abc` WHERE `ID`=" & ID & ";" 
rs1.Open sqlstr, conn, adOpenStatic
With Worksheets("Main").Cells(a, 1)
.ClearContents
.CopyFromRecordset rs1
End With
rs1.Close
Set rs1 = Nothing

1 个答案:

答案 0 :(得分:0)

我找到了一种解决上述问题的方法,只需设置两个连接到两个不同的数据库(在同一个MySQL实例上工作)。

我的代码看起来像这样:

sort()