php从两个不同的数据库中加入两个mssql表

时间:2015-12-01 17:42:48

标签: php sql-server left-join

我需要查询同一服务器上不同数据库中两个表的数据,但它总是向我显示相同的错误消息:

  

警告:mssql_query():message:无效的对象名称“db1.ARTICULO”。   (严重程度16)

<?php 
$server = 'servidor\SQLEXPRESS';
$link = mssql_connect($server, 'usuario', 'password');
if (!$link) {
    die('Algo fue mal mientras se conectaba a MSSQL');
}   
$bd_1 = "db1";
mssql_select_db($bd_1, $link);

$link2 = mssql_connect($server, 'usuario', 'password',true);
if (!$link2) {
    die('Algo fue mal mientras se conectaba a MSSQL');
}   
$bd_2 = "db2";
mssql_select_db($bd_1, $link2);
$query = "SELECT ARTICULO.CODIGO, ARTICULO.NOMBRE, PRECIOS.PRECIO " ;
$query .= "FROM db1.ARTICULO LEFT JOIN db2.PRECIOS ON ARTICULO.CODIGO = PRECIOS.ARTICULO " ;
$query .= "WHERE ARTICULO.CODIGO = '" . $_POST["codart"] . "'";
$result = mssql_query($query);
?>

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在MSSQL中,您需要将目标指定为[database].[schema].[object]

更改此行...

$query .= "FROM db1.ARTICULO LEFT JOIN db2.PRECIOS ON ARTICULO.CODIGO = PRECIOS.ARTICULO " ;

......对此...

$query .= "FROM db1.dbo.ARTICULO LEFT JOIN db2.dbo.PRECIOS ON ARTICULO.CODIGO = PRECIOS.ARTICULO " ;

假设这一切都在默认的[dbo]架构中。