• MySql中子查询,左链,右链,内链,关键字join


    --内连接

    * 功能
        拿左表的记录去匹配右表的记录,若符合条件就显示(二张表交集部分)
    * 语法
        1)隐式内连接
            select ... from 左表,右表 where 连接条件;
        2)显示内连接【推荐】
            select ... from 左表 [inner] join 右表 on 连接条件;
    -- 隐式
    SELECT * FROM dept d,emp e WHERE d.id = e.dept_id AND d.name = '开发部';
    -- 显示
    SELECT * FROM dept d INNER JOIN emp e ON d.id = e.dept_id WHERE d.name = '开发部';

    --外连接

    1. 左外连接
        功能
          展示左表全部,再去匹配右表,若符合条件显示数据,不符合显示null
        语法
          select ... from 左表 left [outer] join 右表 on 连接条件;
        
    2. 右外连接
        功能
          展示右表全部,再去匹配左表,若符合条件显示数据,不符合显示null
        语法
          select ... from 左表 right [outer] join 右表 on 连接条件;
    # 举例
    # 左外连接
    -- 查询所有员工信息及对应的部门名称 SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.dept_id = d.id; # 右外连接 -- 查询所有部门及对应的员工信息 SELECT * FROM emp e RIGHT OUTER JOIN dept d ON e.dept_id = d.id;

    注意:外连接必须加条件

       连接条件= 表个数-1

    --子查询(嵌套)

    * 功能
            一条select查询结果,作为另一条select语法的一部分
    * 语法
        1)查询结果单值(使用=SELECT MAX(salary) FROM emp;
        2)查询结果单列(使用in)
            SELECT salary FROM emp;
        3)查询结果多列
            SELECT * FROM emp;
            
    * 规律
        子查询结果单列或单值,一般作为条件在where后面使用
            select ... from 表名 where 字段 in|= (子查询);
        子查结果为多列,一般作为虚拟表在from后面使用
            select ... from (子查询) [as] 表别名;
    # 子查询结果为单值
    -- 举例 查询工资最高的员工是谁? 
    SELECT * FROM emp WHERE salary = (SELECT MAX(salary) FROM emp);
    
    # 子查询结果为单列多行
    -- 举例 查询工资大于5000的员工
    SELECT * FROM dept WHERE id IN(SELECT dept_id FROM emp WHERE salary > 5000);
    
    # 子查询结果为多列多行
    -- 举例 查询出2011年以后入职的员工信息,包括部门名称
    -- 此处将查询语句当作临时表使用
    SELECT * FROM (SELECT * FROM emp WHERE join_date >= '2011-1-1') e LEFT OUTER JOIN dept d ON e.dept_id = d.id;
  • 相关阅读:
    25个妙招儿,帮你每天挤出一小时
    怎样把outlook只最小化到托盘中而不再任务栏中显示
    背完这999句,你的英语口语绝对没有问题了!
    掌握自己的未来
    asp.net page liftcycle
    [转]浅析软件项目管理中十个误区
    明确一个古老的问题left join,right join,inner join,full join,cross join
    项目管理缩略语英中注释表
    30秒清除你电脑中的垃圾(使你的电脑急速如飞)
    看美片必备英语常识(转载)
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13440100.html
Copyright © 2020-2023  润新知