我无法通过 CONCAT first_name 和 last_name 为 created_by 和 edited_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
答案 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