我熟悉" IN" sql中的子句,例如
select * from table1 where myfield in (select myfield from table2)
我现在在两个数据库之间!我想选择其他数据库中手机在其他记录集中的记录集。我不是直接使用sql server。你可以建议我使用服务器端语言的更复杂的方法,例如php或asp等。
我在经典asp 中的测试(其中connectionObject1连接到第一个数据库,connectionObject2连接到第二个数据库):
sql="select phone from persons"
recordset1.open sql,connectionObject1
sql="select * from persons where phone in ("& recordset1 &")"
recordset2.open sql,connectionObject2
Microsoft VBScript运行时错误' 800a000d'
类型不匹配
答案 0 :(得分:2)
您的错误在这里:
sql="select * from persons where phone in ("& recordset1 &")"
您正在尝试连接字符串,但recordset1
是一个记录集,顾名思义,而非字符串。
我只是看了这个。您应该能够将记录集转换为GetString
字符串,因此:
sql = "select * from persons where phone in (" &
recordset1.GetString(adClipString, -1, ",", ",") &
")"
如果手机不是数字,则需要其他引号:
sql = "select * from persons where phone in (" &
"'" &
recordset1.GetString(adClipString, -1, "','", "','") &
"'" &
")"
我可能会误解语法。在这种情况下,请查看您的文档。
答案 1 :(得分:1)
在SQL中使用完全限定的对象名称,这应该有效:
sql="select * from [DB1Name].[SchemaName].persons where phone in (select phone from [DB2Name].[SchemaName].persons)"