📜  SQL – 使用 MS SQL Server 从多个表中选择(1)

📅  最后修改于: 2023-12-03 15:05:18.283000             🧑  作者: Mango

SQL – 使用 MS SQL Server 从多个表中选择

在SQL中,有时候需要从多个表中选择数据。在MS SQL Server中,我们可以使用JOIN语句来实现这一操作。

INNER JOIN

INNER JOIN是最常见的JOIN类型,它只返回那些在两个表中都存在的数据。

例如,有两个表students和scores,我们需要选择他们的学号和成绩。可以通过以下SQL查询实现:

SELECT students.id, scores.score
FROM students
INNER JOIN scores
ON students.id = scores.id;

这个查询将返回同时在students表和scores表中存在的学号和成绩。

LEFT JOIN

LEFT JOIN返回左侧表中的所有数据以及右侧表中匹配的数据。如果右侧表中没有匹配的数据,则显示NULL值。

例如,有两个表students和scores,我们需要选择他们的学号和成绩。此时,我们希望无论是否有成绩记录,都要选择学生的学号。可以通过以下SQL查询实现:

SELECT students.id, scores.score
FROM students
LEFT JOIN scores
ON students.id = scores.id;

这个查询将返回所有学生的学号以及他们的成绩(如果有成绩记录)或NULL值(如果没有成绩记录)。

RIGHT JOIN

RIGHT JOIN和LEFT JOIN相反,返回右侧表中的所有数据以及左侧表中匹配的数据。如果左侧表中没有匹配的数据,则显示NULL值。

例如,有两个表students和scores,我们需要选择他们的学号和成绩。此时,我们希望无论是否有学生记录,都要选择成绩的分数。可以通过以下SQL查询实现:

SELECT students.id, scores.score
FROM students
RIGHT JOIN scores
ON students.id = scores.id;

这个查询将返回所有成绩记录的分数以及他们的学生学号(如果有学生记录)或NULL值(如果没有学生记录)。

FULL OUTER JOIN

FULL OUTER JOIN返回左右两侧表中的所有数据,如果没有匹配的数据,则显示NULL值。

例如,有两个表students和scores,我们需要选择他们的学号和成绩。此时,我们希望将学生和成绩的所有记录都选择出来。可以通过以下SQL查询实现:

SELECT students.id, scores.score
FROM students
FULL OUTER JOIN scores
ON students.id = scores.id;

这个查询将返回所有学生和成绩的记录,如果学生或成绩记录中没有匹配的数据,则对应的字段显示NULL值。

以上是从MS SQL Server多个表中选择数据的JOIN语句介绍,希望对你的SQL查询有所帮助。