Выбор 2 таблиц из 2 разных баз данных (ACCESS) - PullRequest
1 голос
/ 26 июня 2010

вот соединение, которое у меня есть

strCon="DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};PWD=password;"
set adoCon=server.createobject("adodb.connection")
adoCon.Open strCon

так что для работы с 2 базами данных у меня есть 2 adoCon и когда я делаю выбор, я выбираю из каждой базы данных мне нужно

теперь для проблемы ... в этой ситуации я смогу только получить всю информацию от одного, а затем от другого. но я хочу иметь возможность соединить все вместе.

db1.tblcats имеет категории, а db2.tblcats - категории и подкатегории. поэтому в дополнение к тому, чтобы иметь возможность выбрать оба из них, мне нужно знать, из какого кота дБ


Шаг 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

как я могу узнать, какая запись пришла с какой базы данных? потому что мне нужно действовать по-разному для каждого

1 Ответ

4 голосов
/ 26 июня 2010

Вы можете использовать IN:

SELECT t1.*, t2.* 
FROM T1 
INNER JOIN 
(SELECT * FROM atable 
IN 'C:\Docs\DB2.mdb') t2
ON t1.ID=t2.ID

РЕДАКТИРОВАТЬ:

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

РЕДАКТИРОВАТЬ 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")

РЕДАКТИРОВАТЬ 3

Или вы можете добавить виртуальное поле:

 SELECT 1 AS "DB", Field, Field FROM  ...
 UNION ALL
 SELECT 2 AS "DB", Field, Field FROM

UNION ALL обычно быстрее.

...