Mysql Nodejs与sql
晚上好,伙计们。请告诉我我是新来的Mysql Nodejs与sql,mysql,sql,node.js,express,Mysql,Sql,Node.js,Express,晚上好,伙计们。请告诉我我是新来的sql。正在尝试编写查询以联接3个表 这是我的结果 我有一个成员表、一个部门表和一个培训表 一个成员可以在多个部门。可以接受一次以上的培训 请告诉我如何把这些联系起来。我尝试加入3个表格,但令我惊讶的是,结果输出了一个成员,他在2个部门工作了两次 { Id: 6, name: Toyin, department: user }, { Id: 6, name: Toyin, department: choir } 这是我想要的
sql
。正在尝试编写查询以联接3个表
这是我的结果
我有一个成员表、一个部门表和一个培训表
一个成员可以在多个部门。可以接受一次以上的培训
请告诉我如何把这些联系起来。我尝试加入3个表格,但令我惊讶的是,结果输出了一个成员,他在2个部门工作了两次
{
Id: 6,
name: Toyin,
department: user
},
{
Id: 6,
name: Toyin,
department: choir
}
这是我想要的结果
我只想
{
Id: 6,
name: Toyin,
department: [ user, choir]
}
从那以后我一直在谷歌上搜索,但还是没找到
期待中的感谢我希望内部连接能起作用
选择department2.id、department2.name、department2.department
来自第二部门
department2.id=department1.id上的内部联接department1
您的表架构应该如下所示:
-USER Table
ID USER_NAME
-DEPARTMENT Table
ID DEPT_NAME
-TRAINING Table
ID TRAIN_NAME
-MEMBERSHIP Table
ID USER_ID DEPT_ID TRAIN_ID
只需添加group by子句和JSON_ArrayAggregate方法。
SELECT USER.ID, USER.USER_NAME, JSON_ARRAYAGG(DEPT_NAME), JSON_ARRAYAGG(TRAIN_NAME)
FROM USER AS U
INNER JOIN MEMBERSHIP AS M ON M.USER_ID = U.ID
INNER JOIN DEPARTMENT AS D ON M.DEPT_ID = D.ID
INNER JOIN TRAINING AS T ON M.TRAIN_ID = T.ID
WHERE USERID = 6
GROUP BY U.ID
你的桌子看起来怎么样,你试了什么?事实并非如此。