zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    UE4_武器4_武器切换(下)
    UE4_武器3_武器切换(上)
    UE4_武器2_矛的攻击与动画
    UE4_武器1_创建武器
    Java知识体系复习笔记
    今日份学习: 毕设。。。。
    笔记:Spring security认证
    一个项目的记录:多人博客
    今日份学习: Spring
    今日份学习:部署?
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13440100.html
Copyright © 2011-2022 走看看