【问题标题】:many to many relationships tables多对多关系表
【发布时间】:2017-03-12 06:56:24
【问题描述】:

我有三张桌子:

  • 学生: 学生卡 , 名 , 姓 , 重大的 , 学年 ,

  • 课程: 学生卡, 课程编号 , 课程名 , 部 ,

  • 学生课程: 名 , 学生卡 , 课程编号 ,

我需要编写一个 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

【问题讨论】:

  • 第一:为什么要使用group concat? 2 你得到的错误是什么?
  • 我没有收到错误,对此我深表歉意。查询未按应有的方式运行

标签: mysql


【解决方案1】:

您的表格结构在我看来是错误的。

表学生:好的 表课程:删除 student_id 表 student_courses:删除 student_name

然后这样查询数据

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 子句。

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

【讨论】:

  • 嗨,你能帮我一个新的 mysql 和编写查询吗?我输入了你给我的信息,它说条款不明确
  • 您不必编写“WHERE 子句”,但取决于您要显示的内容“WHERE student_id=variable”或“WHERE course_id=variable”,变量当然是资源的 ID您正在尝试获取并且您对 jn 感兴趣。
  • 我必须编写查询,但出现错误。我该如何解决这个问题?
  • 是的,我知道,但是我在添加“where 子句”之前运行了程序,我得到了我告诉你的错误“子句不明确”
  • 您是否使用表字段名称修复了查询?
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 2011-12-23
  • 2014-06-12
相关资源
最近更新 更多