sql联表查询和嵌套查询的差异,举例
时间: 2024-03-03 18:48:14 浏览: 65
好的,我分别举一个联表查询和嵌套查询的例子。
联表查询的例子:
假设我们有两个表:学生表(students)和课程表(courses),它们之间通过学生编号(student_id)建立关联。我们需要查询每个学生所选修的课程名称和成绩,可以使用以下联表查询语句:
```
SELECT students.student_name, courses.course_name, courses.score
FROM students
INNER JOIN courses ON students.student_id = courses.student_id
```
上述查询语句中,我们使用INNER JOIN将学生表和课程表连接起来,然后以学生编号为条件将两个表中的数据进行匹配,最终得到每个学生所选修的课程名称和成绩。
嵌套查询的例子:
假设我们有一个订单表(orders),其中包含订单编号(order_id)、订单日期(order_date)、客户编号(customer_id)等信息,还有一个客户表(customers),其中包含客户编号(customer_id)、客户名称(customer_name)等信息。我们需要查询在2019年1月份下单的客户名称和订单数量,可以使用以下嵌套查询语句:
```
SELECT customers.customer_name, COUNT(*)
FROM customers
WHERE customers.customer_id IN (
SELECT orders.customer_id
FROM orders
WHERE orders.order_date BETWEEN '2019-01-01' AND '2019-01-31'
)
GROUP BY customers.customer_name
```
上述查询语句中,我们先在内部查询中筛选出在2019年1月份下单的客户编号,然后将这些客户编号作为外部查询的条件,从客户表中检索出客户名称,并统计每个客户在该月份下的订单数量。最终得到的结果是每个客户名称和订单数量的统计信息。
阅读全文