SQL打卡,今天的主题是多表查询,重点学习子查询(`Subquery`)的用法!子查询可以让查询更灵活,适合处理复杂的多表数据关联。✨学习来源:牛客
—
四、多表查询:子查询(Subquery)

1. 什么是子查询?
子查询是嵌套在另一个查询中的查询,用于帮助主查询筛选数据。常见用法是通过子查询获取特定条件的数据,再用于主查询中。
—
2. 子查询示例
– 嵌套查询
比如,我们想查询“北京大学”的用户设备相关数据,可以这样写:
SELECT
device_id,
question_id,
result
FROM
question_practice_detail
WHERE
device_id IN (
SELECT device_id
FROM user_profile
WHERE university = ‘北京大学’
);
分析:
– **内层查询(子查询)**:
SELECT device_id FROM user_profile WHERE university = ‘北京大学’;
这部分会先筛选出“北京大学”的所有设备 ID。
– **外层查询(主查询)**:
使用子查询结果,筛选出符合条件的练习明细数据。
—
3. 子查询的特点
– 嵌套结构:子查询一般在 `()` 中,作为条件传递给主查询。
– 组合使用:子查询可以与 `IN`、`NOT IN`、`= (SELECT …)` 等搭配使用。
– 灵活性强:可以处理跨表数据关联、过滤复杂条件等需求。
—
**子查询小提示**
– 子查询的效率可能较低,尤其在数据量大的情况下,建议优化查询条件或考虑使用 `JOIN` 替代。
– 嵌套层数不宜过深,保持逻辑清晰!