Sql 学习在两个表之间使用联接
我有两张桌子: 学生有以下列名: 学生(身份证、姓名、姓氏、班级) 和得分: 分数(学生ID、分数、日期、分数、学科) 显示所有学生及其数学成绩(无论他们是否有分数): 如何使用JOIN执行这些方形?我在几个网站上试着理解它,但仍然不清楚(我是SQL新手),有人能简单地解释一下它是如何工作的吗?如下:Sql 学习在两个表之间使用联接,sql,postgresql,Sql,Postgresql,我有两张桌子: 学生有以下列名: 学生(身份证、姓名、姓氏、班级) 和得分: 分数(学生ID、分数、日期、分数、学科) 显示所有学生及其数学成绩(无论他们是否有分数): 如何使用JOIN执行这些方形?我在几个网站上试着理解它,但仍然不清楚(我是SQL新手),有人能简单地解释一下它是如何工作的吗?如下: FROM student, score WHERE student.id = score.studentid 是我们在20世纪80年代使用的语法。1992年,SQL标准发明了显式连接: FROM
FROM student, score WHERE student.id = score.studentid
是我们在20世纪80年代使用的语法。1992年,SQL标准发明了显式连接:
FROM student INNER JOIN score ON student.id = score.studentid
如果你在一个用80年代的语法教学的班级,我会说退出那个班级
无论如何,两者都是连接。内部连接在那个位置。您可以加入sudentid
上的student
和score
表,并只保留匹配项(即,如果某个学生没有任何分数行,则不选择该学生)
您的第二个查询不包含联接,但使用的查找不存在
第三个查询再次包含内部联接。但是,这与要求你同时向非数学专业的学生展示的任务不匹配。你需要一个外部连接:
SELECT st.id, st.name, sc.score AS math_score
FROM student st
LEFT OUTER JOIN score sc ON sc.studentid = st.id AND sc.discipline = 'Mathematics';
这:
是我们在20世纪80年代使用的语法。1992年,SQL标准发明了显式连接:
FROM student INNER JOIN score ON student.id = score.studentid
如果你在一个用80年代的语法教学的班级,我会说退出那个班级
无论如何,两者都是连接。内部连接在那个位置。您可以加入sudentid
上的student
和score
表,并只保留匹配项(即,如果某个学生没有任何分数行,则不选择该学生)
您的第二个查询不包含联接,但使用的查找不存在
第三个查询再次包含内部联接。但是,这与要求你同时向非数学专业的学生展示的任务不匹配。你需要一个外部连接:
SELECT st.id, st.name, sc.score AS math_score
FROM student st
LEFT OUTER JOIN score sc ON sc.studentid = st.id AND sc.discipline = 'Mathematics';
这些学生使用的是古老的语法。您应该忘记,您曾经了解过,
FROM
子句中允许使用逗号。使用加入
!你为什么改变你的要求?为什么删除了两个查询?为什么我的回答不够?你还想知道什么?这些学生正在使用古老的语法。您应该忘记,您曾经了解过,FROM
子句中允许使用逗号。使用加入
!你为什么改变你的要求?为什么删除了两个查询?为什么我的回答不够?你还想知道什么?