如何使用MySQL在两列中填充名称?
总结 我的数据库中有两个表。第一个表包含网页名称和两列,其中包含创建和上次修改这些网页的用户ID。第二个表格包含了这些人的姓名 如何在表1中填充这些名称?我确实提到了一个类似的问题,但这不起作用 表一(页面信息): +------------+---------+----------+ |页面标题|创建者|修改器| +------------+---------+----------+ |第1页| 1 | 2| |第2页| 1 | 2| |第3页| 2 | 2| |第4页| 2 | 1| |第5页| 2 | 1| +------------+---------+----------+ 表二(用户表): +---------+-------+ |用户ID |名称| +---------+-------+ |1 |标记| |2 |凯文| +---------+-------+ 我想做的是: +------------+---------+----------+ | Page Title | Creator | Modifier | +------------+---------+----------+ | Page 1 | Mark | Kevin | | Page 2 | Mark | Kevin | | Page 3 | Kevin | Kevin | | Page 4 | Kevin | Mark | | Page 5 | Kevin | Mark | +------------+---------+----------+ +------------+---------+----------+ |页面标题|创建者|修改器| +------------+---------+----------+ |第1页|马克|凯文| |第2页|马克|凯文| |第3页|凯文|凯文| |第4页|凯文|马克| |第5页|凯文|马克| +------------+---------+----------+如何使用MySQL在两列中填充名称?,mysql,sql,Mysql,Sql,总结 我的数据库中有两个表。第一个表包含网页名称和两列,其中包含创建和上次修改这些网页的用户ID。第二个表格包含了这些人的姓名 如何在表1中填充这些名称?我确实提到了一个类似的问题,但这不起作用 表一(页面信息): +------------+---------+----------+ |页面标题|创建者|修改器| +------------+---------+----------+ |第1页| 1 | 2| |第2页| 1 | 2| |第3页| 2 | 2| |第4页| 2 | 1| |第5
试试这样的
SELECT t1.PageTitle,t2.Name,t3.Name
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.Creator = t2.UserID
LEFT JOIN Table2 t3 ON t1.Modifier = t3.UserID
您只需加入两次:
select p.*, uc.name as creator, um.name as modifier
from pages p join
users uc
on p.Creator = uc.UserID join
users um
on p.Modifier = um.UserID;
如果
创建者
/修饰符
的值可能为空
则应使用左联接
,最大值
非常简单。非常感谢。我取了最大值,但它起作用了。@Punkrock760。这也是第一个正确答案。然而,作为OP,你可以接受你喜欢的任何答案。
SELECT t1.PageTitle,t2.Name,t3.Name
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.Creator = t2.UserID
LEFT JOIN Table2 t3 ON t1.Modifier = t3.UserID
select p.*, uc.name as creator, um.name as modifier
from pages p join
users uc
on p.Creator = uc.UserID join
users um
on p.Modifier = um.UserID;