从具有多个联接的两个不同表中选择两列[Mysql]

从具有多个联接的两个不同表中选择两列[Mysql],mysql,Mysql,我有四个表是用户(id,name),角色(id,name),成员(项目id,用户id,id),和成员角色(成员id,角色id)。那么,我怎样才能同时从这些表中选择users.name和roles.name(project_id是准确选择我们需要的名称的条件)?。我可以分别选择users.name和roles.name,但当我连接两个查询时,我的代码失败。这是获取users.name的查询 select users.name from users inner join members on mem

我有四个表是
用户(id,name)
角色(id,name)
成员(项目id,用户id,id)
,和
成员角色(成员id,角色id)
。那么,我怎样才能同时从这些表中选择users.name和roles.name(project_id是准确选择我们需要的名称的条件)?。我可以分别选择users.name和roles.name,但当我连接两个查询时,我的代码失败。这是获取users.name的查询

select users.name from users
inner join members on members.user_id = users.id
where project_id = 1
下面是获取roles.name的查询

select roles.name from roles
inner join member_roles on member_roles.role_id = roles.id
join members on members.id = member_roles.member_id
where project_id = 1 

你快到了。此外,为避免歧义,请在列
名称
上提供别名

SELECT  DISTINCT 
        u.Name AS member_name,
        r.Name AS role_name
FROM    users u
        INNER JOIN members m 
            ON u.id = m.user_id
        INNER JOIN member_roles mr
            ON m.id = mr.member_id
        INNER JOIN roles r
            ON r.id = mr.role_id
WHERE   m.project_id = 1

如何连接两个查询?像这样的怎么样:

select u.name as user_name, r.name as role_name from users u join members m on m.user_id = u.id join member_roles mr on mr.member_id = m.id join roles r on r.id = mr.role_id where m.project_id = 1;