Php SQL-来自另一个数据库的另一个记录集中的where列

Php SQL-来自另一个数据库的另一个记录集中的where列,php,asp.net,sql-server,asp-classic,where-in,Php,Asp.net,Sql Server,Asp Classic,Where In,我熟悉sql中的IN子句,例如 从表1中选择*其中myfield位于从表2中选择myfield 我现在在两个数据库之间!我想选择手机位于另一个数据库的其他记录集中的记录集。我没有直接使用sql server。您可以建议我使用服务器端语言(如php或asp等)使用更复杂的方法 我在经典asp中的测试,其中connectionObject1连接到第一个数据库,connectionObject2连接到第二个数据库: sql="select phone from persons" recordset1.

我熟悉sql中的IN子句,例如

从表1中选择*其中myfield位于从表2中选择myfield

我现在在两个数据库之间!我想选择手机位于另一个数据库的其他记录集中的记录集。我没有直接使用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”

类型不匹配

您的错误如下:

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 &")"
您试图连接字符串,但recordset1是一个记录集,顾名思义,而不是字符串

我只是查了一下。您应该能够使用GetString将记录集转换为字符串,因此:

如果电话不是数字,则需要附加引号:

sql = "select * from persons where phone in (" & 
        "'" &
        recordset1.GetString(adClipString, -1, "','", "','") &
        "'" &
      ")"

我可能弄错了语法。在这种情况下,请查看您的文档。

在SQL中使用完全限定的对象名,这应该可以:

sql="select * from [DB1Name].[SchemaName].persons where phone in (select phone from [DB2Name].[SchemaName].persons)"

在SQL中使用完全限定的对象名称,这应该可以:

sql="select * from [DB1Name].[SchemaName].persons where phone in (select phone from [DB2Name].[SchemaName].persons)"

这两个数据库在同一台服务器上吗?是的,它们在同一台服务器上,单个用户可以访问这两个数据库。但是我们已经将不同的默认数据库指定给这两个连接对象。您可能需要考虑使用A,这样数据库就可以一起查询。您需要根据查询的数据量和其他问题检查性能。但是,您要查找的结果将是来自其中一个数据库的简单查询,而不是操纵两个单独的结果。这两个数据库是否在同一台服务器上?是的,它们位于同一台服务器上,并且单个用户可以访问这两个数据库。但是我们已经将不同的默认数据库指定给这两个连接对象。您可能需要考虑使用A,这样数据库就可以一起查询。您需要根据查询的数据量和其他问题检查性能。但是,您要查找的结果将是来自其中一个dbs的简单查询,而不是操纵两个单独的结果。这很可爱。您甚至可以将其缩短为从persons中选择*。但是,OP正在从两个不同数据库中的两个不同Person表中进行选择。您是对的,没有密切注意。。。谢谢,真可爱。您甚至可以将其缩短为从persons中选择*。但是,OP正在从两个不同数据库中的两个不同Person表中进行选择。您是对的,没有密切注意。。。谢谢。这对我很有效,但是我把adClipString改为2,并且我没有用任何东西代替-1。我还必须删除字符串末尾的最后一个逗号和引号,这对我来说很有效,但是我将adClipString改为2,并且我没有用任何东西代替-1。我还必须删除字符串末尾的最后一个逗号和引号