mysql在三个表之间加入

时间:2016-06-03 14:14:18

标签: mysql join nested

我的数据库中有4个表:

SELECT pu.user_id AS user_id, 
       group_concat(p.name separator ',') AS list_pos
FROM position_user pu 
INNER JOIN positions p 
        ON p.id = pu.position_id 
GROUP BY pu.user_id
  • 用户与角色之间的关系是一对一的
  • 用户位置之间的关系是多对多

我想让所有用户使用他们的角色名称和列表与他们的位置,但我不知道如何构建我的查询。我认为我的一个查询必须是这样的:

SELECT users.id, users.first_name, roles.name
FROM users
JOIN roles 
  ON users.role_id = roles.id

其他人必须是这样的:

var express = require('express');
var app = express();

var myVar = 1;

我可以在一个查询中将这两者结合起来吗?

1 个答案:

答案 0 :(得分:1)

尝试这样的方法并查看MySQL文档。

SELECT pu.user_id AS user_id, u.first_name, r.name as rol_name, group_concat(p.name separator ',') AS list_pos
    FROM position_user pu 
    INNER JOIN positions p ON p.id = pu.position_id 
    INNER JOIN users u ON u.id = pu.uder_id
    INNER JOIN roles R ON u.role_id = r.id
    GROUP BY pu.user_id, u.first_name, r.name