一个表有userID1和userID2,如何从一个User表中获得User1Name和User2Name

张天星 2018-12-20 12:35:33
一个表有userID1和userID2,如何从一个User表中获得User1Name和User2Name.
Message表有UserID和SendUserID字段。
User表有Name和RoleID字段。
Role表有Name字段。
如何通过Message表,去关联Role和User,获取UserName,UserRoleName,SendUserName,SendUserRoleName?
。。。
如果只有一个UserID,我还会写多表查询,
可是现在有两个UserID,我就不知道怎么写了。
...全文
1285 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SELECT 
user.Name AS UserName,
role.Name AS UserRoleName,
sendUser.Name AS SendUserName,
sendRole.Name AS SendUserRoleName
FROM
Message
LEFT JOIN
User user ON Message.UserID1 = user.id
LEFT JOIN
Role role ON user.RoleID = role.id
LEFT JOIN
User sendUser ON Message.UserID1 = sendUser.id
LEFT JOIN
Role sendRole ON sendUser.RoleID = sendRole.id
octwind 2018-12-20
  • 打赏
  • 举报
回复

create temporary table if not exists tmp_userrole
select a.id userid, b.id roleid, a.name username,b.name rolename FROM user a inner join role b on a.roleid = b.roleid;
select
(select name from user where userid = t.userid) UserName
,(select rolename from tmp_userrole where userid = t.userid) UserRoleName
,(select name from user where userid = t.SendUserID) SendUserName
,(select rolename from tmp_userrole where userid = t.SendUserID) SendUserRoleName
from Message t ;
  • 打赏
  • 举报
回复
说得好乱啊。。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧