Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Nodejs与sql_Mysql_Sql_Node.js_Express - Fatal编程技术网

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 

你的桌子看起来怎么样,你试了什么?事实并非如此。