php - 有没有办法从表 #2 中获取数据,如果它有表 #1 的外键,我查询表 #1

标签 php mysql

我有 2 个表,一个名为 users,还有一个名为 role_id 的表,它使用外键从第二个名为 roles 的表中获取数据。所以 role_id 是角色的 id,但我想获取位于角色表中的值并打印它而不是 id。我什至不知道该怎么做。 所以如果我们看一下代码: 我想回显角色的值而不是 role_id,但它位于另一个表中

$querytable = mysqli_query($con, "SELECT * from users WHERE role_id = '2' OR role_id = '1'");
        while($row=$querytable->fetch_assoc()):?>
         <tr><td><?php echo $row['username'];?></td>
         <td><?php echo $row['fio'];?></td>
         <td><?php echo $row['password'];?></td>
         <td><?php echo $row['role_id'];?></td>
         <td><?php echo $row['salary_fix'];?></td>
         <td><?php echo $row['salary_percent'];?></td></tr>
        <?php endwhile;?>

最佳答案

您可以使用 JOIN 从链接表中获取数据

像那样:

SELECT * from users 
JOIN roles ON users.role_id = roles.id
WHERE role_id IN (1, 2) 

然后您将从每个用户的角色表中获得值

查看文档以获取更多信息

https://dev.mysql.com/doc/refman/8.0/en/join.html

关于php - 有没有办法从表 #2 中获取数据,如果它有表 #1 的外键,我查询表 #1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55335034/

相关文章:

php - 我如何将这个巨大的分割查询变成一个查询

c# - PHP的number_format在C#中的等效功能是什么?

php - 确定值列表是否完全满足一对多关系的最有效方法(MySQL)

mysql - 在特定字符后拆分一列

MySql 命令行 csv

c# - MySQLDataReader 未将任何数据加载到所示表单上的指定位置

php - 从我的连接表获取数据

php - 下载大文件 (500MB+) 时 Curl 挂起

mysql - 在使用 BINARY 或不使用 Binary 的 MySQL 中,哪一个会更快?

php - 我可以声明一个 php 函数抛出异常吗?