Php MySQL如何连接两个不同数据库中的两个表?
我有两个数据库Php MySQL如何连接两个不同数据库中的两个表?,php,mysql,sql,database,join,Php,Mysql,Sql,Database,Join,我有两个数据库chinmay235和desarrollo_论坛 我想使用联接查询联接两个表nuke\u follow\u投票和smf\u成员 nuke_follow_投票表格存在于chinmay235中,而smf_成员存在于Desarrollou论坛数据库中 代码: <?php $dbhost = "localhost"; $dbuname = "chinmay_db"; $dbpass = "2014@movie"; $dbname = "chinmay235";
chinmay235
和desarrollo_论坛
我想使用联接查询联接两个表nuke\u follow\u投票
和smf\u成员
nuke_follow_投票
表格存在于chinmay235
中,而smf_成员
存在于Desarrollou论坛
数据库中
代码:
<?php
$dbhost = "localhost";
$dbuname = "chinmay_db";
$dbpass = "2014@movie";
$dbname = "chinmay235";
mysql_connect($dbhost,$dbuname,$dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$qry = mysql_query("SELECT a.* FROM chinmay235.nuke_follow_votes a LEFT JOIN desarrollo_forum.smf_members b ON a.user_id=b.id_member WHERE b.user_id IS NOT NULL;") or die(mysql_error());
$res=mysql_fetch_row($qry);
echo "Total Record = ".mysql_num_rows($qry);
?>
我成功地连接了chinmay235
并获得了表nuke_follow_投票
,但问题是无法连接第二个数据库
请帮助我如何连接和联接这两个表并获得正确的数据。MYSQL服务器允许您联接来自不同数据库的表,只要这些数据库位于同一服务器上。连接语法相同;唯一的区别是必须完全指定表名 假设在同一台服务器上有两个数据库——Db1和Db2。Db1有一个名为Clients的表,该表有一个列ClientId,Db2有一个名为Messages的表,该表有一个列ClientId(让我们来说明为什么这些表位于不同的数据库中) 现在,要对上述表执行联接,您将使用以下查询: 假设该帐户具有适当的权限,您可以使用:
SELECT ...
FROM A.table t1
JOIN B.table2 t2 ON t2.column = t1.col
这只是一个权限问题 您的用户似乎无法在数据库desarrollo_论坛上选择表 使用以下命令检查用户的权限
SHOW GRANTS FOR 'chinmay235'@'localhost';
您可以使用.p>语法为联接两个表添加授权
选择
来自表A.A
连接表B.B
按A键=B键
根据您的要求,您可以使用左连接、右连接、完全外部连接、内部连接查询似乎很好,但您是否限制了desarrollo_forum db的选择权限 试着给第二个db这样的特权
GRANT ALL ON desarrollo_forum.* TO chinmay235@'localhost';
FLUSH PRIVILEGES;
如错误消息中所述,您没有所需的权限。您的用户无权选择表“smf_成员”@Dinistro Yes Authorization my table
smf_成员
OP标记MySql时,您为什么要为SQL Server应答?这里出现相同的错误消息。请您简要解释一下您使用授予desarrollo_论坛上的所有权限。*向用户授予<代码>querygrant完全权限的情况chinmay235@host;检查我发送的页面。这里有一些例子。链接:这适用于单个数据库。但我的要求是如何使用连接查询在两个不同的数据库中获取数据。请再次阅读我的问题。SELECT*从[MyDatabaseOnDB1].[dbo].[MyTable]tab1左键加入[DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable]tab2在tab1.ID=tab2.ID上
GRANT ALL ON desarrollo_forum.* TO chinmay235@'localhost';
FLUSH PRIVILEGES;