繁体   English   中英

如果它具有表#1的外键并且我确实查询表#1,是否可以从表#2获取数据

[英]Is there a way to get data from table #2 if it has a foreign key with table #1 and I do query for table #1

我有2个表,其中一个称为用户,还有一个名为role_id的表,该表使用外键从称为角色的第二个表中获取数据。 所以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

如果要获取角色值而不是role_id,则应使用LEFT JOIN:

SELECT * FROM users LEFT JOIN roles ON users.roles_id = roles.value

听起来您想在查询中使用联接,是否可以提供有关表结构的更多详细信息?

从您所说的来看,我认为您正在寻找类似的东西:

SELECT * FROM users INNER JOIN roles on users.role_id = roles.id WHERE role_id='1' OR role_id='2'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM