简体   繁体   English

php左连接来自两个differents数据库的两个mssql表

[英]php left join two mssql tables from two differents database

I need to query data from two tables in different databases on the same server, but it always shows me the same error message: 我需要从同一台服务器上不同数据库中的两个表中查询数据,但它总是向我显示相同的错误消息:

Warning: mssql_query(): message: Invalid object name 'db1.ARTICULO'. 警告:mssql_query():消息:无效的对象名称'db1.ARTICULO'。 (severity 16) (严重性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);
?>

Any ideas? 有任何想法吗?

In MSSQL, you need to specify the target as [database].[schema].[object] . 在MSSQL中,您需要将目标指定为[database].[schema].[object]

Change this line... 更改此行...

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

...to this... ...对此...

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

Assuming this is all in the default [dbo] schema. 假设所有这些都在默认的[dbo]模式中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM