MySql教程

mysql 子查询

本文主要是介绍mysql 子查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

实例

SELECT
    * 
FROM
    student 
WHERE
    class_id IN ( SELECT id FROM class WHERE id = 2 );
+----+--------+------+------+----------+--------+
| id | name   | sex  | age  | class_id | status |
+----+--------+------+------+----------+--------+
|  4 | 小红   | 女   |   23 |        2 |      1 |
|  5 | 小花   | 女   |   19 |        2 |      1 |
+----+--------+------+------+----------+--------+
2 rows in set (0.00 sec)

实例

select * from student where class_id < (select id from class where id = 2);
+----+--------+------+------+----------+--------+
| id | name   | sex  | age  | class_id | status |
+----+--------+------+------+----------+--------+
|  1 | 张三   | 男   |   18 |        1 |      1 |
|  2 | 王五   | 男   |   20 |        1 |      1 |
|  3 | 李四   | 男   |   20 |        1 |      1 |
+----+--------+------+------+----------+--------+
3 rows in set (0.00 sec)

实例

select * from student where class_id = (select id from class where id = 2);
+----+--------+------+------+----------+--------+
| id | name   | sex  | age  | class_id | status |
+----+--------+------+------+----------+--------+
|  4 | 小红   | 女   |   23 |        2 |      1 |
|  5 | 小花   | 女   |   19 |        2 |      1 |
+----+--------+------+------+----------+--------+
2 rows in set (0.00 sec)

实例

SELECT
    class.`id`,
    class.`name`,
    ( SELECT count( * ) FROM student WHERE student.`class_id` = class.`id` ) AS 学生数 
FROM
    class;
+------+---------+-----------+
| id   | name    | 学生数    |
+------+---------+-----------+
|    1 | 班级1   |         3 |
|    2 | 班级2   |         2 |
|    3 | 班级3   |         2 |
+------+---------+-----------+
3 rows in set (0.00 sec)
这篇关于mysql 子查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!