加入两个不同的数据库表

时间:2017-06-12 05:20:41

标签: php mysql database join

当我与普通字段(ID)进行比较时,我想加入两个不同的数据库表。以下代码我在我的网站上显示,但它显示错误

我的代码:

$conn = mysqli_connect("localhost", "username1", "password1", "databse1");
$conn1 = mysqli_connect("localhost", "username2", "password2", "database2");
$result = '';
$query = "SELECT * FROM database1.table1,database2.table1  where 

database1.table1.id=database2.table1.id ";

$sql = mysqli_query($conn,$query);


$result .='
<table class="table table-bordered">
<tr>
<th width="20%">ID</th>
<th width="10%">Qty</th>
</tr>';
if(mysqli_num_rows($sql) > 0)
{

    while($row = mysqli_fetch_array($sql))
    {
        $result .='
        <tr>
        <td>'.$row["id"].'</td>
        <td>'.$row["qty"].'</td>
        </tr>';
    }
}
else
{
    $result .='
    <tr>
    <td colspan="5">No Item Found</td>
    </tr>';
}
$result .='</table>';
echo $result;

错误讯息:

警告:mysqli_num_rows()要求参数1为mysqli_result,布尔值在

中给出

请帮助和帮助我......

1 个答案:

答案 0 :(得分:0)

请尝试以下查询

select table1.*,table2.* from table1
LEFT JOIN table2 ON table2.id = table1.id

如需进一步了解MYSQL JOINS,请点击此处:https://dev.mysql.com/doc/refman/5.7/en/join.html

修改 查询不起作用,因为查询中存在错误,您创建了两个连接字符串$conn$conn1并且仅使用1,您不需要两个不同的连接字符串,请{{1数据库username1database1以及删除database2的权限仅使用$conn1

如果您使用$conn之类的任何本地服务器,那么WAMP,XAMPP用户可以访问所有数据库,如果您在root,则按照以下步骤添加用户数据库特权:http://www.thehostingnews.com/how-to-grant-mysql-privileges-in-cpanel.html

EDIT 2 根据OP,两个数据库都在不同的服务器上,可以通过herehere检查已经回答过的一些不同的可能解决方案

另一种可能的解决方案

1)您可以在cpanel上创建临时表,并将数据从database2插入database1临时表,仅在database2's使用JOIN查询< /强>

2)或者你可以使用两个不同的查询,首先从数据库1的表中获取id并使用该id激发另一个查询到database2&#39的表

编辑3(根据我的#2nd建议编辑代码)

database2