mysql - 有没有复杂的select查询来解决这个问题

标签 mysql sql database select mariadb

我需要对表进行查询,并在此查询中我想替换 corsspende 用户“first_name”的值中的“created_by”值 因为一个用户创建了另一个用户,所以我想返回创建者的真实姓名而不是他的 ID

我试图更深入地了解查询类型,但查询类型太多了,内连接、外连接、左连接、变量,.. 我不知道哪个概念是解决方案[在此处输入图像描述]

最佳答案

您将从该表执行 INNER JOIN 返回自身:

 SELECT users.*, createdby.*
 FROM yourtable users
     INNER JOIN yourtable createdby
        ON users.created_by = createdby.id

为了做到这一点,FROM 子句中的每个表都会获得一个别名。第一次使用它时,我将其称为 users,第二次我将其称为 createdby。这使得 SQL 的其余部分很明显正在引用哪个表以及原因。

我们将第一个表的created_by连接到第二个表的id。本质上,第二个表包含 created_by 用户的属性。

您只需将 yourtable 替换为您的实际表名称,并可能将这些 * 替换为您想要从每个表中获取的实际字段。

关于mysql - 有没有复杂的select查询来解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457592/

相关文章:

java - 想知道Microstream类StorageConfiguration

php - 如何使用表单传递 mysql 行变量

PHPMailer 使用我的服务器电子邮件发送消息

SQL Server 算术溢出错误将 IDENTITY 转换为数据类型 int 但尚未达到 int 的最大值

SQL合并两列的值作为主键

sql - 多个 SQL 表在没有 JOIN 的情况下添加在一起

mysql - 根据月份和日期从数据库中获取最新记录

MYSQL 返回有多少人记录了一个事件

MySQL 从有关系但没有连接的表中选择

java - JDBC 使用 MySQL 选择批处理/获取大小