sqlserver如何联表查询
时间: 2023-09-12 21:10:21 浏览: 89
SQL Server 中联表查询的语法如下:
```
SELECT column1, column2, ...
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
```
其中,`JOIN` 关键字用于指定要联接的表,`ON` 关键字用于指定联接条件。
例如,假设有两个表 `students` 和 `scores`,它们的结构如下:
```
students
+----+-------+-------+
| id | name | class |
+----+-------+-------+
| 1 | Alice | A |
| 2 | Bob | B |
| 3 | Carol | A |
+----+-------+-------+
scores
+----+------------+-------+
| id | exam | score |
+----+------------+-------+
| 1 | Math | 90 |
| 2 | English | 85 |
| 3 | Science | 92 |
| 1 | English | 88 |
| 2 | Math | 92 |
| 3 | Social | 80 |
+----+------------+-------+
```
要查询每个学生的姓名、班级和数学成绩,可以使用如下 SQL 语句:
```
SELECT students.name, students.class, scores.score
FROM students
JOIN scores
ON students.id = scores.id
WHERE scores.exam = 'Math';
```
执行结果如下:
```
+-------+-------+-------+
| name | class | score |
+-------+-------+-------+
| Alice | A | 90 |
| Bob | B | 92 |
+-------+-------+-------+
```
以上 SQL 语句使用 `JOIN` 联接了 `students` 和 `scores` 两个表,通过 `ON` 指定联接条件是 `students.id = scores.id`,然后使用 `WHERE` 条件过滤出 `exam` 为 `Math` 的成绩记录。最终查询结果包含每个学生的姓名、班级和数学成绩。
阅读全文