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 多对多关系表_Mysql - Fatal编程技术网

Mysql 多对多关系表

Mysql 多对多关系表,mysql,Mysql,我有三张桌子: 学生: 学生 , 名字 , 姓, 专业 学年 , 课程: 学生, courseid , coursename , 部门 , 学生与大学课程: 名字 , 学生 , courseid , 我需要编写一个SQL查询,显示哪些学生正在学习哪些课程一个学生应该能够注册多个课程,一个课程应该能够由多个学生学习 我创建的查询出现错误,有人能帮我吗 select students.firstname as 'name', GROUP_CONCAT(courses.coursename

我有三张桌子:

  • 学生: 学生 , 名字 , 姓, 专业 学年 ,

  • 课程: 学生, courseid , coursename , 部门 ,

  • 学生与大学课程: 名字 , 学生 , courseid ,

我需要编写一个SQL查询,显示哪些学生正在学习哪些课程一个学生应该能够注册多个课程,一个课程应该能够由多个学生学习

我创建的查询出现错误,有人能帮我吗

 select

 students.firstname as 'name',
 GROUP_CONCAT(courses.coursename) as 'course name'

 from students
 join students_courses on students.studentid = students_courses.studentid

 join courses on courses.courseid = students_courses.Courseid

 group by students.Firstname

 order by courses.coursename

我觉得你的桌子结构不对

学生:好的 表课程:删除学生id 表student\u课程:删除student\u名称

然后以这种方式查询数据

SELECT * FROM students AS s LEFT JOIN student_courses AS sc ON s.id=sc.student_id LEFT JOIN courses AS c ON c.id=sc.course_id
如果需要,添加必要的WHERE子句


查询显示所有用户所修的所有课程。它还打印没有课程的用户

第一:为什么要使用group concat?你犯了什么错误?我没有犯错误,对此我很抱歉。查询没有按应该的方式运行我,你能帮助我熟悉mysql并编写查询吗。我输入了你给我的信息,上面说子句是模糊的。你不必写“WHERE子句”,但取决于你想显示什么“WHERE student\u id=variable”或“WHERE course\u id=variable”变量当然是您试图获取的资源的ID,并且您对jn感兴趣。我必须编写查询,我得到一个错误。我怎样才能解决这个问题?是的,我知道,但是我在添加“where子句”之前运行了程序,我得到一个错误,我告诉你“子句不明确”你用表字段名解决了查询吗?