php - 如何添加具有多个表列的 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>';
}
?>
解决方案
我认为您需要为此使用 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';
联合是当您想从两个表中提取一个相似字段并列出该字段的所有值时。这就是为什么它只适用于一列。
推荐阅读
- ipaf - 在并行 PAF 中执行多个活动?
- python - Q: AttributeError: '_FastText' 对象没有属性 'most_similar'
- java - 一次性使用子类初始化 pojo 类
- blazor - Blazor 使用 IHttpContextAccessor 读/写 cookie
- android - AOSP AOSP x86_64 XCB
- php - 选择所有带有空文件的行 Laravel
- javascript - 多次使用 useState 更新列表会导致错误输出
- sql-server - 为什么在我的 SQL Server 上删除了全局临时表?
- python - Numpy,将每行中的最大值更改为 1 而不会更改其他值
- html - MacOS 上的 Google Chrome 和 Safari 会在您将其拖放到所选文本之前抓取该字符