首页 > 解决方案 > 如何添加具有多个表列的 2 个表?

问题描述

我有 2 张桌子与相同的字段赞助商。我正在尝试从两个表中获取数据。

当我尝试从单列获取数据时,它可以正常工作,例如:

$q1 = "
SELECT username 
  FROM member_master 
 WHERE sponsor = 'user1' 
 UNION 
SELECT fname 
  FROM upgrade_master 
 WHERE sponsor = 'user1'
";

但是当我在查询中添加更多列时,它会给出错误 mysqli_num_rows() 期望参数 1 是 mysqli_result,在 C:\xampp\ 中给出的布尔值

这是我的代码:

<?php
require("connect.php");
$q1 = "SELECT username FROM member_master WHERE sponsor='user1' UNION SELECT fname, lname FROM upgrade_master WHERE sponsor='user1'";
$e1 = mysqli_query($connection, $q1);
if(mysqli_num_rows($e1)>0)
{   
    echo '<table><tr>';
    while($row = mysqli_fetch_assoc($e1))
    {
    $username = $row['username'];
    $fname = $row['fname'];
    $lname = $row['lname'];
    echo '<td>'. $username . '</td>';
    echo '<td>'. $fname . '</td>';
    echo '<td>'. $lname . '</td>';
    }
    echo '</tr></table>';

}
?>

标签: phpmysql

解决方案


我认为您需要为此使用 JOIN 而不是 UNION 。试试这个说法:

SELECT mm.username, um.fname, um.lname FROM member_master mm  JOIN upgrade_master um ON mm.sponsor = um.sponsor where mm.sponsor = 'user1';

联合是当您想从两个表中提取一个相似字段并列出该字段的所有值时。这就是为什么它只适用于一列。


推荐阅读