SQL课堂练习(子查询)
时间: 2024-11-03 15:08:15 浏览: 30
SQL子查询是在一个查询内部嵌套另一个查询的过程,它可以帮助我们从一个表中获取数据,然后基于这个结果进一步筛选或计算。子查询通常用于以下几个场景:
1. **作为WHERE条件**: 可以将一个查询的结果用作另一个查询的WHERE子句,例如查找某个特定值存在的记录。
```sql
SELECT * FROM Customers
WHERE ID IN (SELECT CustomerID FROM Orders);
```
这条查询会找出所有有订单的客户。
2. **聚合函数**: 子查询可以与聚合函数(如COUNT(), SUM(), AVG()等)一起使用,计算满足特定条件的行数。
```sql
SELECT ProductName, (SELECT COUNT(*) FROM Orders WHERE Orders.ProductID = Products.ProductID) AS OrderCount
FROM Products;
```
这将显示每个产品的名称及其订单数量。
3. **FROM子句**: 子查询也可以直接作为FROM子句的一部分,创建临时视图或表。
```sql
SELECT Employees.Name, Departments.DepartmentName
FROM (SELECT DepartmentID FROM EmployeeDeparments) AS TempTable
JOIN Departments ON TempTable.DepartmentID = Departments.DepartmentID;
```
这里根据部门ID关联员工和部门信息。
阅读全文