SQL 通过其他表中的 id 获取用户详细信息

时间:2021-05-03 07:01:50

标签: mysql sql express mariadb

我无法通过 CONCAT first_namelast_namecreated_byedited_by 列获取帖子表的数据从用户表。 表格如下:

CREATE TABLE posts
(
  id    varchar(300),
  title     varchar(300),
  created_by    varchar(300),
  edited_by     varchar(255)
);
<头>
id 标题 created_by edited_by
1 洛里姆 1 2
2 ipsum 1 1
3 lorem ipsum 2 2
CREATE TABLE users
(
     id     varchar(300),
     first_name     varchar(300),
     last_name  varchar(300),
        varchar(255)
);
<头>
id 名字 姓氏
1 约翰
2 史密斯

现在我想选择帖子表并使输出如下

<头>
id 标题 created_by edited_by
1 洛里姆 约翰·多伊 威尔史密斯
2 ipsum 约翰·多伊 约翰·多伊
3 lorem ipsum 威尔史密斯 威尔史密斯

问题是我想用用户的名字和姓氏更改帖子表中的 id。我试过这个查询:

SELECT 
  A.id,
  A.title,
  CONCAT(B.first_name, ' ', B.last_name) created_by,
  CONCAT(B.first_name, ' ', B.last_name) edited_by
FROM posts A
INNER JOIN users B ON A.created_by = B.id 

1 个答案:

答案 0 :(得分:0)

您需要 JOIN 个用户表两次:

SELECT A.id, A.title, CONCAT(B.first_name, ' ', B.last_name) created_by, CONCAT(C.first_name, ' ', C.last_name) edited_by 
FROM posts A 
INNER JOIN users B ON A.created_by = B.id
INNER JOIN users C ON A.edited_by = C.id