我想请求帮助。我有3张桌子。
查询3个表的sql语句是什么,以显示student_id,student_name,stud_subject所在的学生和主题描述。
我想要2种类型的记录显示。
首先显示
1, Paul Mark, Math, Mathematics, Mathematics
1, Paul Mark, English, English Language
1, Paul Mark, Science, About Science
2, John Mark, Math, Mathematics, Mathematics
2, John Mark, English, English Language
2, John Mark, Science, About Science
第二次显示
1, Paul Mark, Math, English, Science
2, John Mark, Math, English, Science
以下是3表样本及其记录。非常感谢。
students_name table
student_id, student_name
1, Paul Mark
2, John Mark
students_has_subjects
id, stud_name, stud_subject
1, Paul Mark, 1
2, Paul Mark, 2
3, Paul Mark, 3
4, John Mark, 1
5, John Mark, 2
6, John Mark, 3
Subjects
subject_id, subject_name, description
1, Math, Mathematics
2, English, English Language
3, Science, About Science
答案 0 :(得分:0)
您必须使用2个连接来链接这3个表。 INNER JOIN表示只列出那些元组,每个表中都存在一个正确的元组。没有科目或错误的subject_ids的学生将不会被列出。
请记住,访问X科目的学生也会列出X次。
SELECT n.student_id, n.student_name, s.subject_name, s.description FROM student_name n INNER JOIN student_has_subjects shs ON shs.stud_name = n.student_name INNER JOIN subjects s ON shs.stud_subject = s.subject_id
如果是您的作业,请将其标记为一个!