zoukankan      html  css  js  c++  java
  • Mysql基础(四):sql查询(四)连接查询

    ##进阶6:多表连接查询

    笛卡尔乘积:如果连接条件省略或无效则会出现
    解决办法:添加上连接条件

    一、传统模式下的连接 :等值连接——非等值连接


      1.等值连接的结果 = 多个表的交集
      2.n表连接,至少需要n-1个连接条件
      3.多个表不分主次,没有顺序要求
      4.一般为表起别名,提高阅读性和性能

    二、sql99语法:通过join关键字实现连接

      含义:1999年推出的sql语法
      支持:
        等值连接、非等值连接 (内连接)
      外连接
      交叉连接

    语法:

      select 字段,...
      from 表1
     【inner|left outer|right outer|cross】join 表2 on 连接条件
     【inner|left outer|right outer|cross】join 表3 on 连接条件
     【where 筛选条件】
       【group by 分组字段】
     【having 分组后的筛选条件】
       【order by 排序的字段或表达式】

      好处:语句上,连接条件和筛选条件实现了分离,简洁明了!


    三、自连接

    案例:查询员工名和直接上级的名称

    sql99

      SELECT e.last_name,m.last_name
      FROM employees e
      JOIN employees m ON e.`manager_id`=m.`employee_id`;

    sql92


      SELECT e.last_name,m.last_name
      FROM employees e,employees m
      WHERE e.`manager_id`=m.`employee_id`;

  • 相关阅读:
    Linux软件管理
    Linux计划任务与进程管理
    PHP学习 Day_04
    Linux网络管理
    单播组播的实现
    Linux 下的tmpfs文件系统(/dev/shm)
    11.Linux date命令的用法
    Luogu P3783 [SDOI2017]天才黑客
    Luogu P3768 简单的数学题
    Luogu P2336 [SCOI2012]喵星球上的点名
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14873495.html
Copyright © 2011-2022 走看看