是否有一个复杂的选择查询来解决此问题

时间:2019-04-01 14:32:44

标签: mysql sql database select mariadb

我需要在表上进行查询,并且在此查询中我想用相应的用户“ first_name”的值替换“ created_by”的值 因为一个用户可以enter image description here n创建另一个用户,所以我想返回创建者的真实姓名而不是其ID

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

2 个答案:

答案 0 :(得分:1)

您将在此表中执行一次内部联接:

 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换成您的实际表名,并可能将那些*换成您希望从每个表中获得的实际字段。

答案 1 :(得分:0)

这应该由客户端代码而不是查询来处理,因为这会引起混乱。如果确实需要,则只需获取first_name列值,然后将其返回为create_by,如下所示:

通过FROM用户选择first_name AS create_by;