Y.G*_*G.J 1 union ms-access select ado
这是我的连接
strCon="DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};PWD=password;"
set adoCon=server.createobject("adodb.connection")
adoCon.Open strCon
Run Code Online (Sandbox Code Playgroud)
因此,为了使用 2 个数据库,我有 2 个 adoCon,当我进行选择时,我会从我需要的每个数据库中进行选择
现在的问题......在这种情况下,我将只能从一个然后从另一个获取所有信息。但我想要的是能够把它们放在一起。
db1.tblcats 有类别,db2.tblcats 有类别和子类别,所以除了能够同时选择两者之外,我还需要能够知道什么是 db 中的 cat
大帮助后的第2步
这是我的代码
strSQL = "SELECT name FROM tblcats union " _
& "select name from [MS Access;PWD=pass;DATABASE=" & Server.Mappath("../shop.mdb") & "].tblcats as bcats where bcats.father=50"
rs.CursorType = 3
rs.LockType = 3
rs.Open strSQL, strCon
while not rs.eof
response.write rs("name")&"<br>"
rs.movenext
wend
Run Code Online (Sandbox Code Playgroud)
我怎么知道什么记录来自什么数据库?因为我需要为每个人采取不同的行动
您可以使用 IN:
SELECT t1.*, t2.*
FROM T1
INNER JOIN
(SELECT * FROM atable
IN 'C:\Docs\DB2.mdb') t2
ON t1.ID=t2.ID
Run Code Online (Sandbox Code Playgroud)
编辑:
sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\docs\other.mdb"
cn.open sc
s="SELECT * FROM t1 INNER JOIN " _
& "[MS Access;PWD=databasePWD;DATABASE=C:\docs\db.mdb].t2 ON t1.ID=t2.ID"
rs.Open s, cn
Run Code Online (Sandbox Code Playgroud)
编辑2:
您可以使用别名来识别字段来自哪个数据库:
s="SELECT * FROM table1 t INNER JOIN " _
& "[MS Access;PWD=databasePWD;DATABASE=C:\docs\db.mdb].m ON t.ID=m.ID"
msgbox rs.fields("m.code") & " " & rs.fields("t.code")
Run Code Online (Sandbox Code Playgroud)
编辑 3
或者您可以添加一个虚拟字段:
SELECT 1 AS "DB", Field, Field FROM ...
UNION ALL
SELECT 2 AS "DB", Field, Field FROM
Run Code Online (Sandbox Code Playgroud)
UNION ALL 通常更快。