扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > MySQL高频面试题 > 32.什么是子查询?

子查询:把一个查询的结果在另一个查询中使用

子查询可以分为以下几类:

标量子查询:指子查询返回的是一个值,可以使用 =,>,<,>=,<=,<>等操作符对子查询标量结果进行比较,一般子查询会放在比较式的右侧。

SELECT * FROM user WHERE age = (SELECT max(age) from user) //查询年纪最大的人

列子查询:指子查询的结果是n行一列,一般应用于对表的某个字段进行查询返回。可以使用IN、ANY、SOME和ALL等操作符,不能直接使用

SELECT num1 FROM table1 WHERE num1 > ANY (SELECT num2 FROM table2)

行子查询:指子查询返回的结果一行n列

SELECT * FROM user WHERE (age,sex) = (SELECT age,sex FROM user WHERE name="zhangsan")

表子查询:指子查询是n行n列的一个数据表

SELECT * FROM student WHERE (name,age,sex) IN (SELECT name,age,sex FROM class1) //在学生表中找到班级在1班的学生


点击面试手册,获取本站面试手册PDF完整版