连接两个MYSQL表

连接两个MYSQL表,mysql,sql,database,Mysql,Sql,Database,已解决:我忘记选择某个值,因此查询只返回找到的第一个等级 我有两张桌子,我想把一张桌子的一部分和另一张桌子的一部分结合起来 第一个表Grades有 课程号,章节号,甲级,乙级丙级 第二个表,节,有 课程编号,章节编号,讲师 我想输出结果以便查看 课程号|组别号|讲师| A级| B级| C级 我尝试过使用JOIN,我得到了正确的课程和章节号以及正确的讲师。但是,成绩与第一个表中的课程和学段号不匹配 这是让我得到错误分数的查询 SELECT Grades.COURSE_NUMBER, Grades

已解决:我忘记选择某个值,因此查询只返回找到的第一个等级


我有两张桌子,我想把一张桌子的一部分和另一张桌子的一部分结合起来

第一个表Grades有
课程号
章节号
甲级
乙级
丙级

第二个表,节,有
课程编号
章节编号
讲师

我想输出结果以便查看

课程号|组别号|讲师| A级| B级| C级

我尝试过使用JOIN,我得到了正确的课程和章节号以及正确的讲师。但是,成绩与第一个表中的课程和学段号不匹配

这是让我得到错误分数的查询

SELECT Grades.COURSE_NUMBER, Grades.SECTION_NUMBER, Sections.INSTRUCTOR,     
Grades.A, Grades.B, Grades.C 
FROM `Grades` INNER JOIN `Sections` on Grades.COURSE_NUMBER = Sections.COURSE 
and Grades.SECTION_NUMBER = Sections.SECTION 
我对数据库没有太多的经验,所以任何关于简化这个问题的建议都非常感谢

多谢各位

编辑:

等级表的样本数据:

|  Course_number    |  Section_number   | A | B | C |
|       101         |        001        | 4 | 1 | 0 |
|       101         |        002        | 5 | 2 | 8 |
|       102         |        001        | 7 | 9 | 4 |
截面表的示例数据:

|  Course_number    |  Section_number   |  Instructor  |
|       101         |        001        |     Alex     |
|       101         |        002        |     Jeff     |
|       102         |        001        |     Greg     |
预期结果:

| COURSE NUMBER | SECTION NUMBER | INSTRUCTOR | GRADE A | GRADE B | GRADE C |
|      101      |       001      |    Alex    |    4    |    1    |    0    |
|      101      |       002      |    Jeff    |    5    |    2    |    8    |
|      102      |       001      |    Greg    |    7    |    9    |    4    |
非工作结果:

| COURSE NUMBER | SECTION NUMBER | INSTRUCTOR | GRADE A | GRADE B | GRADE C |
|      101      |       001      |    Alex    |    25   |    9    |    2    |
|      101      |       002      |    Jeff    |    0    |    34   |    6    |
|      102      |       001      |    Greg    |    2    |    3    |    12   |
(成绩只是从成绩表中的某个地方随机抽取的,非常大)

请试试这个

SELECT Grades.COURSE_NUMBER, 
Grades.SECTION_NUMBER,Sections.INSTRUCTOR,Grades.A, 
Grades.B, Grades.C
FROM Grades,Sections
WHERE Grades.COURSE_NUMBER = Sections.COURSE 
AND Grades.SECTION_NUMBER = Sections.SECTION

您的查询在概念上似乎是正确的,但您使用的列名与表结构中描述的列名之间存在差异

试着这样改变它

SELECT  t1.COURSE_NUMBER,
        t1.SECTION_NUMBER,
        t2.INSTRUCTOR,     
        t1.GRADE_A, t1.GRADE_B, t1.GRADE_C 
FROM    Grades t1
INNER JOIN
        Sections t2
ON      t1.COURSE_NUMBER = t2.COURSE_NUMBER AND
        t1.SECTION_NUMBER = t2.SECTION_NUMBER

我在表格中添加了别名以使其更加紧凑,但如果您愿意,显然可以随意切换回完整的表格名称。

添加示例表格数据、当前结果和预期结果-所有这些都是格式良好的文本。我已在问题中添加了示例数据。第二个表Section只有这三列您的列名不匹配。。。示例数据和查询之间不一致。您的查询生成的结果正是您想要的结果!这正是OP编写的查询,但是使用了30年前的样式联接。谢谢,但是这会产生与原始查询相同的结果。这正是OP编写的查询,但是使用了30年前的样式联接。谢谢,但是这会产生与原始查询相同的结果表结构是什么?我已经在原始帖子中添加了示例表谢谢,这是正确的。我忘了选择某个值,所以它只是返回它找到的第一个等级。非常感谢。
SELECT  t1.COURSE_NUMBER,
        t1.SECTION_NUMBER,
        t2.INSTRUCTOR,     
        t1.GRADE_A, t1.GRADE_B, t1.GRADE_C 
FROM    Grades t1
INNER JOIN
        Sections t2
ON      t1.COURSE_NUMBER = t2.COURSE_NUMBER AND
        t1.SECTION_NUMBER = t2.SECTION_NUMBER