连接来自两个不同数据库的表

Posted

技术标签:

【中文标题】连接来自两个不同数据库的表【英文标题】:Joining tables from two different databases 【发布时间】:2013-03-22 16:38:00 【问题描述】:
$db=mysql_connect("localhost", "testuser1", "testuser1") or die(mysql_error()); 
$db2=mysql_connect("localhost", "testuser2", "testuser2", true) or die(mysql_error()); 
$dbname="database1"; 
$dbname2="database2";

mysql_select_db($dbname,$db) or die (mysql_error());
mysql_select_db($dbname2,$db2) or die (mysql_error());


 //this is for the product attributes
 $data = mysql_query("SELECT db.attribute_stock, db.options_values_sku
                                 FROM db.products_attributes 
                                 LEFT OUTER JOIN db2.oscomstock ON db.product_attributes.options_value_sku=db2.oscomstock.options_value_sku 
                             ") or die(mysql_error()); 

但是,当我尝试这样做时,我得到了错误:

SELECT command denied to user 'testuser2' for table 'products_attributes'

它在执行 sql 查询时似乎只对两个数据库使用一组凭据。

我需要做什么才能使用正确的凭据访问它?

提前致谢。

【问题讨论】:

您使用的数据库连接用户没有选择权限 我很确定你也只需要一个连接... 【参考方案1】:

你的权利肯定有问题。

进入 phpmyadmin 中的“权限部分”,找到用户“testuser2”并编辑他的权限。确保选中每个复选框,单击运行并确保“testuser2”现在具有“所有权限”。

希望这会有所帮助。

【讨论】:

【参考方案2】:

您需要将两个数据库的访问权限授予一位用户。并使用该用户连接到数据库服务器。

【讨论】:

以上是关于连接来自两个不同数据库的表的主要内容,如果未能解决你的问题,请参考以下文章

MariaDB 根据列值连接来自不同数据库的表

比较来自两个不同数据库的表 SQL Developer

如何连接来自两个不同 PDO 对象的表?

如何将不同数据上下文的表进行内部连接?[重复]

连接来自两个不同表的两列

Laravel 4:连接来自不同数据库的表