当前位置:实例文章 » JAVA Web实例» [文章]多表查询例题

多表查询例题

发布人:shili8 发布时间:2025-01-12 11:48 阅读次数:0

**多表查询例题**

在实际的数据库应用中,往往需要从多个表中提取数据。这种情况下,我们就需要使用多表查询来实现。这一节将介绍如何使用多表查询来处理不同类型的数据。

###例题1:学生信息和成绩假设我们有两个表:`student` 和 `score`,分别存储学生信息和成绩数据。

**student 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 学生ID |
| name | varchar(20) | 学生姓名 |
| age | int | 学生年龄 |

**score 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 成绩ID |
| student_id | int | 学生ID(外键) |
| subject | varchar(20) | 科目名称 |
| score | int | 成绩 |

我们需要从这两个表中提取学生姓名和对应的最高分数。

###代码示例

sqlSELECT s.name, MAX(sc.score) AS max_scoreFROM student sJOIN score sc ON s.id = sc.student_idGROUP BY s.name;


**注释**

* `JOIN` 关键字用于连接两个表。
* `ON` 子句指定了连接条件,即学生ID相等。
* `GROUP BY`语句用于分组数据,根据学生姓名进行分组。
* `MAX` 函数用于计算每个学生的最高分数。

###例题2:订单信息和商品信息假设我们有两个表:`order` 和 `product`,分别存储订单信息和商品信息。

**order 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 订单ID |
| customer_id | int | 客户ID(外键) |
| order_date | date | 订单日期 |

**product 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 商品ID |
| product_name | varchar(20) | 商品名称 |
| price | decimal(10,2) | 单价 |

我们需要从这两个表中提取订单日期和对应的商品名称。

###代码示例
sqlSELECT o.order_date, p.product_nameFROM order oJOIN product p ON o.id = p.id;


**注释**

* `JOIN` 关键字用于连接两个表。
* `ON` 子句指定了连接条件,即订单ID相等。

###例题3:员工信息和部门信息假设我们有两个表:`employee` 和 `department`,分别存储员工信息和部门信息。

**employee 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 员工ID |
| name | varchar(20) | 员工姓名 |
| department_id | int | 部门ID(外键) |

**department 表结构**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 部门ID |
| department_name | varchar(20) | 部门名称 |

我们需要从这两个表中提取员工姓名和对应的部门名称。

###代码示例
sqlSELECT e.name, d.department_nameFROM employee eJOIN department d ON e.department_id = d.id;


**注释**

* `JOIN` 关键字用于连接两个表。
* `ON` 子句指定了连接条件,即部门ID相等。

以上就是多表查询的例题和代码示例。通过这些例子,我们可以看到多表查询在实际应用中的重要性和灵活性。

其他信息

其他资源

Top