【发布时间】:2021-05-03 15:18:31
【问题描述】:
我无法通过 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 | title | created_by | edited_by |
|---|---|---|---|
| 1 | lorem | 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 | first_name | last_name |
|---|---|---|
| 1 | john | doe |
| 2 | will | smith |
现在我想选择帖子表并制作如下所示的输出
| id | title | created_by | edited_by |
|---|---|---|---|
| 1 | lorem | john doe | will smith |
| 2 | ipsum | john doe | john doe |
| 3 | lorem ipsum | will smith | will smith |
问题是我想用用户的名字和姓氏更改帖子表中的 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
【问题讨论】:
-
到底是什么问题?你写了什么查询?它会出现什么问题?
-
问题是我想用用户的名字和姓氏更改帖子表中的 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 帖子 A INNER JOIN users B ON A.created_by = B.id
-
好的,我已编辑您的请求以将信息放在那里。如 MtwStark 所示,您必须加入用户表两次。而且我不会使用任意别名。它们使查询难以阅读。例如,将
p用于posts和u或users,而不是a和b。