同时在多个数据库上使用内连接准备语句

时间:2015-07-22 16:29:42

标签: php mysql database prepared-statement inner-join

我确信已经回答了,如果是的话,我想知道在哪里。

数据库
我有两个数据库" Conn"和" Conn2"

Conn host a table called Account.
Account has 2 columns: User_Key,Username


Conn2 has a table called Miles 
Miles has 3 Columns: Miles_Key,Miles_User_Key, Miles_Amount


我想做的是创建一个排行榜。

我想从Conn2中拉出Miles_Amount并使用SUM函数来获取总值。使用INNER JOIN ON Miles_User_Key = User_Key从Conn获取用户名。

我可以使用单个数据库完成这一切,但我不知道如何使用双数据库执行此操作。

$LB_User_Query = "  SELECT Miles_User_Key, Username, SUM(Miles_Amount) AS 'Miles' 
                    FROM Miles 
                    INNER JOIN Account
                         ON Account_Stats.Account_Stats_Account_Key = Miles.Miles_User 
                    GROUP BY Miles.Miles_User 
                    ORDER BY Miles Desc";
$LB_User_stmt = $Conn->prepare($LB_User_Query);
$LB_User_stmt->execute();                           
$LB_User_stmt->bind_result($Miles_User_Key, $Username, $Miles);

在旁注中,如果您想知道为什么帐户和里程位于两个单独的数据库中,那是因为我们有两个单独的网站,每个网站都填充相同的帐户..

2 个答案:

答案 0 :(得分:0)

要从单独的数据库中提取数据,只需在表名前添加数据库名称即可。因此,您不是使用Account,而是使用Conn.Account而不是Miles,而只使用Conn2.Miles

答案 1 :(得分:0)

好的,因为显然不可能将两个单独的数据库连接链接到一个查询。我在$ conn连接上设置了一个表来推送用户的名字,所以当我只用一个数据库连接运行这个查询时,我可以把它拉出来。