登录
首页 >  数据库 >  MySQL

MySQL学习笔记09__子查询

来源:SegmentFault

时间:2023-02-24 08:40:52 493浏览 收藏

小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《MySQL学习笔记09__子查询》,就很适合你,本篇文章讲解的知识点主要包括MySQL。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

细枝末节

/* 1. 查询Abel的工资 */
SELECT salary
FROM emp
WHERE name = 'Abel';

/* 2. 查询salary>1中结果的员工信息 */
SELECT *
FROM emp
WHERE salary > (
    SELECT salary
    FROM emp
    WHERE name = 'Abel'
);
查询最低工资大于50号部门最低工资的部门id及其最低工资

/* 1. 查询50号部门的最低工资 */
SELECT MIN(salary)
FROM emp
WHERE dept_id = 50;

/* 2. 查询每个部门的最低工资 */
SELECT MIN(salary), dept_id
FROM emp
GOURP BY dept_id;

/* 3. 在2的结果集上进行筛选,满足MIN(salary)>1中结果 */
SELECT dept_id, MIN(salary)
FROM emp
GROUP BY dept_id
HAVING MIN(salary) > (
    SELECT MIN(salary)
    FROM emp
    WHERE dept_id = 50
);

列子查询(多行子查询)

示例

查询location_id是1400或1700的部门的所有员工姓名

/* 1. 查询location_id是1400或1700的部门 */
SELECT id
FROM dept
WHERE loc_id IN(1400, 1700);

/* 2. 在1的结果中查询所有员工姓名 */
SELECT name
FROM emp
WHERE dept_id IN(
    SELECT id
    FROM dept
    WHERE loc_id IN(1400, 1700)
);

EXISTS后面

格式

/* 子查询有元素,结果为1;子查询无元素,结果为0 */
EXISTS(子查询)

示例

查询有员工的部门名

SELECT name
FROM dept
WHERE EXISTS(
    SELECT *
    FROM emp
    WHERE dept.id = emp.dept_id
);

今天带大家了解了MySQL的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>