Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Sql 学习在两个表之间使用联接_Sql_Postgresql - Fatal编程技术网

Sql 学习在两个表之间使用联接

Sql 学习在两个表之间使用联接,sql,postgresql,Sql,Postgresql,我有两张桌子: 学生有以下列名: 学生(身份证、姓名、姓氏、班级) 和得分: 分数(学生ID、分数、日期、分数、学科) 显示所有学生及其数学成绩(无论他们是否有分数): 如何使用JOIN执行这些方形?我在几个网站上试着理解它,但仍然不清楚(我是SQL新手),有人能简单地解释一下它是如何工作的吗?如下: FROM student, score WHERE student.id = score.studentid 是我们在20世纪80年代使用的语法。1992年,SQL标准发明了显式连接: FROM

我有两张桌子:

学生有以下列名: 学生(身份证、姓名、姓氏、班级)

和得分: 分数(学生ID、分数、日期、分数、学科)

显示所有学生及其数学成绩(无论他们是否有分数):

如何使用JOIN执行这些方形?我在几个网站上试着理解它,但仍然不清楚(我是SQL新手),有人能简单地解释一下它是如何工作的吗?

如下:

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
子句中允许使用逗号。使用
加入
!你为什么改变你的要求?为什么删除了两个查询?为什么我的回答不够?你还想知道什么?