本篇内容由猿道教育的课程内容整理而来。
我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。
子查询
子查询,从原有的查询语句中 嵌入新的查询 来得到我们想要的结果,也可称为嵌套查询。
一、where 型
1、查询课程名为“Java”的学生信息
-- 使用关联查询实现
SELECT
s.*
FROM
students s,
class c
WHERE
s.class_id = c.class_id
AND c.class_name = 'JAVA'
-- 使用子查询实现
SELECT
*
FROM
STUDENTS
WHERE
CLASS_ID = (
SELECT
CLASS_ID
FROM
CLASS
WHERE
CLASS_NAME = 'JAVA'
)
2、用子查询实现查询出PHP 和 Java的学生
select * from students
where class_id IN(
SELECT
class_id
FROM
class
WHERE
class_name = 'JAVA'
OR class_name = 'PHP'
)
注意:
1、IN 的元素不能超过1000个。
2、in的效率会较低。有时候会用exists代替 in。
3、所有的关联查询都可以转换为子查询。但是并不是所有的子查询都能转化成关联查询。
二、from型
把内层的查询结果集作为临时表 供外层sql再次查询。
SELE